
36
|
第
2
章
</args>
</configuration>
</plugin>
JSR-305 中定义的 @Nonnull 注解采用名为 when 的属性。如果该值的 when 属性的值
为 When.ALEAYS,则这个带注解的类型将被视为非空类型。如果值为 When.MAYBE
或 When.NEVER,它将被认为是可空的。如果为 When.UNKNOWN,则该类型会被认为
是可空性未知的
平台
类型。
2.3
为
Java
添加重载方法
问题
如果你有一个带有默认参数的 Kotlin 函数,如何从 Java 调用它而无须为每个参数显式指定值。
解决方案
为函数添加 @JvmOverloads 注解。
讨论
给一个 Kotlin 函数指定一个或多个默认参数,参见示例 2-12。
示例 2-12:一个带默认参数的 Kotlin 函数
fun addProduct(name: String, price: Double = 0.0, desc: String? = null) =
"Adding product with $name, ${desc ?: "None" }, and " +
NumberFormat.getCurrencyInstance().format(price)
对于 addProduct 函数,String 类型的 name 参数是必需的,但是 price 与 desc
参数却拥有默认值。price 的默认值为 0.0,而 desc 是可空类型,且默认值为 null。
在 Kotlin ...