繁体   English   中英

在Java中调用Kotlin时,如何使用默认值省略构造函数参数?

[英]How to omit the constructor parameter with a default value when calling Kotlin in Java?

我的kotlin档案:

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

我的java文件只能这样做:

new Chat("John",18);

但我可以写这个吗?

new Chat("John");

来自Kotlin文件

通常,如果您使用默认参数值编写Kotlin方法,则它将仅在Java中显示为完整签名,并且存在所有参数。 如果您希望向Java调用者公开多个重载,则可以使用@JvmOverloads批注。

因此,如果要仅使用Java在name初始化Chat ,则必须将@JvmOverloads注释添加到构造函数中。

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

它将使用默认值为每个参数生成额外的重载。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM