2017-08-14 50 views

回答

7

Kotlin document

通常情況下,如果你寫一個科特林方法使用默認參數值,這將是在Java中可見僅作爲一個完整簽名,與目前所有參數。如果您希望向Java調用者公開多個重載,則可以使用@JvmOverloads註釋。

所以,如果你想只在Java初始化Chatname,你必須@JvmOverloads註釋添加到構造。

class Chat @JvmOverloads constructor(var name: String, var age: Int? = 18) 

它會爲每個參數生成一個附加的過載,使用默認值。

public Chat(String name) {} 
public Chat(String name, Integer age) {}