我剛剛讀了一本書中的這段代碼。可以引用一個接口= null?
public class AdapterWrapper implements ListAdapter {
ListAdapter delegate=null;
// other code
}
的ListAdapter
是一個公共接口和接口的參考了並分配NULL。這有效嗎?我真的很困惑。
我剛剛讀了一本書中的這段代碼。可以引用一個接口= null?
public class AdapterWrapper implements ListAdapter {
ListAdapter delegate=null;
// other code
}
的ListAdapter
是一個公共接口和接口的參考了並分配NULL。這有效嗎?我真的很困惑。
是的,它是有效的。這僅表示delegate
是對ListAdapter
接口的參考,它目前指向null
。
以後,您可以使它指向任何類實現ListAdapter
接口,如SimpleCursorAdapter
,WrapperListAdapter
或任何你想要的其他實現。
如果您不提前知道運行時將會使用什麼類,那麼使用接口類型作爲參考很有用。所以你只需使用指向一個接口的引用。
變量有一個值,它是一個空引用。這沒有什麼問題。
任何引用類型變量的值是對某個兼容類型的實例的引用,或者是null - 對於類和接口都是相同的。
ErichLancaster:是的,接口永遠不會直接作爲對象存在。對象總是由一些可能實現接口的類創建的。因此,您的接口變量將包含對實現此接口的類的某個對象的引用,或者爲null。 –