2016-10-06 56 views
-3

我需要幫助,這是Swift中的AnyObject類的示例。Android - AnyObject for Android like iOS Swift 2

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中,我無法做到這一點。那麼,是否有可能在Android中使用AnyObject類,就像在iOS中一樣?

+0

這個問題還不夠清楚,你是什麼意思?你可能想編輯它... –

+0

你想要[Object](https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html)類嗎? – kennytm

回答

3

您需要使用Java Object類。否則,您可以創建自己的類,擴展所有OtherClass並將其用作輸入類型參數。

你可以給一看就太Java Generic Types(但它更先進,也許是沒有用在這種情況下)

Swift AnyObject Doc

,這是所有類隱含符合該協議。

Java Object Doc

類對象的類層次結構的根。每個類都有Object作爲超類。所有的對象,包括數組,都實現了這個類的方法。

+0

完美答案! 非常感謝@lubilis。這解決了我的問題。 – icaksama