Kotlin中的@JvmOverloads注解含义
相当于写一个构造函数,其他的构造函数就自定重载了。举个例子:
没有添加@JvmOverloads注解
class Test constructor(a: String, b: Int, c: Boolean)
它仅包含三个参数的构造方法,你要创建这个类的实例就必须填写三个参数;相当于java中的样子是这样的,
public class Test {
private Test(String a, int b, boolean c) {
}
}
添加了@JvmOverloads注解
class Test @JvmOverloads constructor(a: String, b: Int, c: Boolean)
相当于java中的
public class Test {
private Test(String a) {
}
private Test(String a, int b) {
}
private Test(String a, int b, boolean c) {
}
}
会把所有的构造函数都指定出来。