静态字段
Kotlin中在命名对象或伴生对象中声明的属性:
class Department {
...
companion object {
var innerID = "X001"
@JvmField
var innerName = "DEP"
}
}
innerID、innerName这两个字段的区别在于可见性上:
@NotNull
private static String innerID = "X001";
@JvmField
@NotNull
public static String innerName = "DEP";
这个私有的innerID通过Companion对象来封装,提供出public的getInnerID() 、setInnerID来访问:
public static final class Companion {
@NotNull
public final String getInnerID() {
return Department.innerID;
}
public final void setInnerID(@NotNull String var1) {
Intrinsics.checkParameterIsNotNull(var1, "<set-?>");
Department.innerID = var1;
}
private Companion() {
}
// $FF: synthetic method
public Companion(DefaultConstructorMarker $constructor_marker) {
this();
}
}
我们在Java访问的innerID
时候,是通过Companion来访问:
Department.Companion.getInnerID()
而我们使用@JvmField
注解的字段innerName
,Kotlin编译器会把它的访问权限设置是public的,这样我们就可以这样访问这个属性字段了:
Department.innerName
当前内容版权归 JackChan1999 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 JackChan1999 .