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。
添加回答
舉報