我们首先定义一个Koltin的Person类
class Person(var name: String, var age: Int)
转换成Java如下:
public final class Person {
@NotNull
private String name;
private int age;
@NotNull
public final String getName() {
return this.name;
}
public final void setName(@NotNull String var1) {
Intrinsics.checkParameterIsNotNull(var1, "<set-?>");
this.name = var1;
}
public final int getAge() {
return this.age;
}
public final void setAge(int var1) {
this.age = var1;
}
public Person(@NotNull String name, int age) {
Intrinsics.checkParameterIsNotNull(name, "name");
super();
this.name = name;
this.age = age;
}
}
在Java中使用这个Person类:
Person p1 = new Person("haha", 18);
p1.setName("XiXi");
p1.setAge(16);
而在Kotlin中可以直接使用:
扫描二维码关注公众号,回复:
11949379 查看本文章
val person = Person("haha", 18)
person.name = "xixi"
person.age = 16
如果希望在Java中 的使用方式与在Kotlin中相同,应该如何处理呢?
在Kotlin代码中加上@JvmField
class Person(@JvmField var name: String, var age: Int)
转换成对应的Java文件为:
public final class Person {
@JvmField
@NotNull
public String name;
private int age;
public final int getAge() {
return this.age;
}
public final void setAge(int var1) {
this.age = var1;
}
public Person(@NotNull String name, int age) {
Intrinsics.checkParameterIsNotNull(name, "name");
super();
this.name = name;
this.age = age;
}
}
在Java文件中就可以以相同的方式调用:
Person p1 = new Person("haha", 18);
p1.name = "xixi";