簡體   English   中英

如何將 Kotlin Nothing 翻譯成 Java?

[英]How to translate Kotlin Nothing to Java?

我有一個類是MyClass<T>

我需要將其子類MySubclass<Nothing>

但有時我需要向 Java 函數發送MyClass引用,該函數又可以接收MySubclass ,我如何聲明它以使其兼容?

或者我應該簡單地使用void receiveClass(aClass: MyClass<*>)

如果我正確理解你的問題,你可以這樣做:

// Kotlin:
open class MyClass<T>
class MySubclass : MyClass<Nothing>()
// Java:
static <E> void receiveClass(MyClass<E> c) {
}

static void receiveClass1(MyClass<?> c) {
}
// Kotlin:
@JvmStatic
fun main(args: Array<String>) {
  receiveClass(MySubclass())
  receiveClass1(MySubclass())
}

這兩種變體在運行時都可以工作並且是等效的,區別在於您是否需要receiveClass的類型信息<E>以確保編譯時的類型安全。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM