3
我科特林文件:如何在Java中調用Kotlin時省略構造函數參數和默認值?
class Chat(var name: String, var age: Int? = 18)
我的Java文件只可以這樣做:
new Chat("John",18);
但是我能不能寫的嗎?
new Chat("John");
我科特林文件:如何在Java中調用Kotlin時省略構造函數參數和默認值?
class Chat(var name: String, var age: Int? = 18)
我的Java文件只可以這樣做:
new Chat("John",18);
但是我能不能寫的嗎?
new Chat("John");
通常情況下,如果你寫一個科特林方法使用默認參數值,這將是在Java中可見僅作爲一個完整簽名,與目前所有參數。如果您希望向Java調用者公開多個重載,則可以使用@JvmOverloads註釋。
所以,如果你想只在Java初始化Chat
與name
,你必須@JvmOverloads
註釋添加到構造。
class Chat @JvmOverloads constructor(var name: String, var age: Int? = 18)
它會爲每個參數生成一個附加的過載,使用默認值。
public Chat(String name) {}
public Chat(String name, Integer age) {}