2 回答
TA贡献1921条经验 获得超9个赞
Kotlin 只是编译成 Java 的字节码。对于任何“特殊”功能,如扩展或空保护,Kotlin 只是注入一些代码。例如,使用空值保护,Kotlin 代码可能如下所示:
fun setPackageName(pName: String) {
//do something
}
虽然它编译为:
public final void setPackageName(@NotNull String pName) {
Intrinsics.checkParameterIsNotNull(pName, "setPackageName");
//do something
}
如果您在 Kotlin 中有一个带有 setter/getter 的变量:
var something: Something? = null
get() {
return field
}
set(value) {
field = value
}
Kotlin 只会将整个设置转换为私有成员变量和一些方法:
private Something something;
public Something getSomething() {
return something;
}
public void setSomething(Something something) {
this.something = something;
}
显然,这个 sett/getter 非常无用,但它说明了 Kotlin 可能会做什么。
基本上,Kotlin 只是在编译时将自身转换为 Java。
添加回答
举报