這感覺非常微不足道,但我的谷歌和堆疊溢位結果充滿了完全不相關的東西。
在java中,如果一個方法呼叫回傳一個父類物件,即
ParentClass instance = someCall();
您可以將其強制為子類并通過以下方式呼叫子類特定的方法
(ChildClass) instance.doChildClassThings()
在 kotlin 中如何作業?
uj5u.com熱心網友回復:
除了馬特的回答,請注意,對于一個普通的在Java中使用(甚至最常見的),你鑄造并不需要as在科特林; 即,如果您在檢查instance實際屬于后進行轉換ChildClass,則在 Java 中您撰寫
if (instance instanceof ChildClass) {
((ChildClass) instance).doChildClassThings();
}
在 Kotlin 中,由于smart-casting,撰寫就足夠了
if (instance is ChildClass) {
instance.doChildClassThings()
}
并且編譯器插入演員表。
uj5u.com熱心網友回復:
您可以使用as關鍵字來實作與
(ChildClass) instance.doChildClassThings()
instance.doChildClassThings() as ChildClass
或者如果instance是您正在尋找的 ChildClass
(instance as ChildClass).doChildClassThings()
https://kotlinlang.org/docs/typecasts.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/314637.html
上一篇:隱式宣告的解構式
下一篇:無法從派生型別串列訪問擴展方法
