为了账号安全,请及时绑定邮箱和手机立即绑定

Kotlin 与 android java 在 Dalvik VM 上的工作

Kotlin 与 android java 在 Dalvik VM 上的工作

噜噜哒 2021-09-12 16:40:58
我想知道 kotlin 在低级交互方面是否与 android java 相同。我的意思是将 android java 文件转换为 dex 文件,然后它们可以在 Dalvik VM 上运行,那么 kotlin 文件呢?是一样的方式还是有别的东西?我在哪里可以找到更多关于此的信息?可能有什么好书谈论它?谢谢你。
查看完整描述

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。


查看完整回答
反对 回复 2021-09-12
  • 2 回答
  • 0 关注
  • 110 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信