Android - AnyObject для Android, как iOS Swift 2

Мне нужна помощь, это пример класса AnyObject в Swift.

class OtherClass {
   private var myValue: String?
   func setValue(myValue: String) {
      self.myValue = myValue
   }
   func getValue() -> String {
      return myValue!
   }
}

class MyClass {
   init() {
      let otherClass = OtherClass()
      otherClass.setValue("Value here!")
      let myValue = getValue(otherClass) as? String
      print(myValue) // output is Value here!
   }
   func getValue(object: AnyObject) -> AnyObject {
      let myObject = object as! OtherClass
      return myObject.getValue()
   }
}

Мы можем добавить объект OtherClass к параметру метода getValue. Как видите, метод параметра AnyObject, а не OtherClass. Но в Android я не могу этого сделать. Итак, возможно ли использовать AnyObject Class в Android, как в iOS?

1 ответ

Решение

Вам нужно использовать класс Java Object. В противном случае вы можете создать свой собственный класс, расширенный всеми OtherClass и использовать его в качестве параметра типа ввода.

Вы также можете взглянуть на Java Generic Types (но он более продвинутый и, возможно, в этом случае бесполезен)

Swift AnyObject Doc:

Протокол, которому неявно соответствуют все классы.

Java Object Doc:

Объект класса является корнем иерархии классов. У каждого класса есть Object как суперкласс. Все объекты, включая массивы, реализуют методы этого класса.

Другие вопросы по тегам