java 默认参数 实例化_如何使用Kotlin中的默认构造函数参数值实例化对象?

使用在科特林:

在构造函数中的默认值仅服用时该构造的特定参数不传递到它在所有。那意味着它是为了实现各种组合的参数化构造函数。 例如,

data class Bird (val name: String = "peacock", val gender: String = "male")

如鸟(),波导( “鸽子”)或鸟(性别= “女性”)一起使用时取缺省值。

所以要解决你的问题,你必须添加?在类别参数旁边。 这样,

data class Project(val code: String,

val name: String,

val categories: List?)

并且不需要emptyList()默认值。 当你使用的emptyList在你的问题,你必须检查null并省略该参数是这样

val project = if(categories == null)

{

Project(code,name)

}

else

{

Project(code,name,categories)

}

,在另一个科特林类使用该数据类时。

在Java中使用:

但是如果你想为科特林使用下一些方法支持此默认参数为@Hotkey说,这是默认不支持,在任何Java类使用此数据类,然后引擎盖。

所以,使其与Java类兼容你必须添加@JvmOverloads注解,但是并不像@Hotkey说有注解这样

data class Project @JvmOverloads constructor(val code: String,

val name: String,

val categories: List? = emptyList())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值