[英]Kotlin generics to java without wildcards
Kotlin 類示例:
class Example {
private lateinit var creator: (Unit) -> String
}
在java中等效將是
class Example {
Function1<? super Unit, ? super String> creator
}
如何注釋字段創建者以避免使用通配符?
您可以使用@JvmSuppressWildcards
刪除通配符:
lateinit var creator: (@JvmSuppressWildcards Unit) -> @JvmSuppressWildcards String
順便說一下,您的代碼不會生成通配符,因此以下代碼在沒有任何注釋的情況下是完全有效的:
new Example().setCreator(new Function1<Unit, String>() {
@Override
public String invoke(Unit unit) {
return "Test";
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.