1、为带有默认参数的Kotlin函数添加@JvmOverload注解
init {
add(1)
add(1,3)
}
// 此处是一个带有默认参数的函数,在Kotlin中调用时既可以传第一个参数也可以传入两个参数 by xiaojin on 7/24/21 10:17 PM
fun add(a:Int,b:Int = 0){
println("a + b = ${a + b}")
}
带有默认参数的Kotlin函数,在Kotlin调用中很方便,入参比较灵活,但是在Java中调用时却不同
如上图所示,在Java中必须传递所有入参。 但是当我们采用如下的写法时
init {
add(1)
add(1,3)
}
// 此处是一个带有默认参数的函数,在Kotlin中调用时既可以传第一个参数也可以传入两个参数 by xiaojin on 7/24/21 10:17 PM
@kotlin.jvm.JvmOverloads fun add(a:Int, b:Int = 0){
println("a + b = ${a + b}")
}
在Java中调用时会和在Kotlin中一样
class Test {
private static void test(){
new NullType().add(1);
new NullType().add(1,2);
}
}
@JvmOverloads注解的作用是为我们生成多个重载函数。 需要注意的是,此注解可同样应用在构造函数中。
2、在构造函数中使用@JvmOverloads注解
这里只提供一个写法示例
data class Person @JvmOverloads constructor(
val name:String,
val tel:String? = "10233",
val address:String = "青岛"
)