我有一個 Kotlin 物件,它委托它的實作,在我的情況下MutableSet<String>喜歡這樣:
object MySet : MutableSet<String> by TreeSet<String>() {
init {...}
}
在 Java 中,我想說一些類似MySet.contains. 我怎樣才能做到這一點?
uj5u.com熱心網友回復:
object宣告一個單例。與 Kotlin 不同,您不能使用型別名稱來參考 Java 中的實體。因此,Kotlin 編譯器將單例實體轉換為一個名為的欄位INSTANCE,因此您可以這樣做:
MySet.INSTANCE.contains(foo);
在爪哇。
雖然您可能會INSTANCE偶然發現,僅通過使用 IntelliJ 中的自動完成功能,我可以找到官方檔案的唯一地方是本節底部的從 Java 頁面呼叫 Kotlin,其中討論了呼叫靜態方法。
object Obj { @JvmStatic fun callStatic() {} fun callNonStatic() {} }在 Java 中:
Obj.callStatic(); // works fine Obj.callNonStatic(); // error Obj.INSTANCE.callNonStatic(); // works, a call through the singleton instance Obj.INSTANCE.callStatic(); // works too
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/515362.html
標籤:爪哇科特林单身人士
下一篇:無法決議符號存盤庫
