从 Java 迁移到 Kotlin

2019年11月09日

5 月份的 Google I/O 上,谷歌宣布 Kotlin-first,Kotlin 开始成为 Android 开发者的首选语言,接着谷歌针对 Kotlin 的相关建设不断。

本文简介了谷歌推出的 Kotlin 迁移指南相关内容。

开始从 Java 迁移到 Kotlin

谷歌建议“由点及面”进行迁移,包括人与代码两个层面:

人的层面,团队内部推举出一位 Kotlin “推广大使”,他需要做到:

  • 了解 Kotlin 并成为专家

  • 制定 Kotlin 开发流程

  • 参与代码审核,确保 Kotlin 开发流程得到顺利贯彻

  • 组建公司/团队内部的学习小组

  • 主动收集内部的问题并与开发者社区反馈探讨

而代码层面,需要做到:

  • 先使用 Kotlin 编写测试(此时项目依然在使用 Java)

  • 使用 Kotlin 编写新代码

  • 将现有代码更新为 Kotlin 代码

在将现有代码更新为 Kotlin 代码时,可以直接使用 Android Studio 提供的 Java 转 Kotlin 工具,只需要在菜单中选择 “Code → Convert Java File to Kotlin File” 即可:

△ Java 转 Kotlin 工具

另外,Kotlin 的迁移工作没必要一蹴而就,开发者可以按照自己的进度来逐步进行迁移。一个项目中可以同时包含 .java 和 .kt 文件,但同一个文件中不可以既有 Java 也有 Kotlin,开发者也可以在 Kotlin 代码中使用任何 Java 库。

△ Android Studio 的 Lint 检查中也可以打开 Kotlin 互操作检查

在 Kotlin 中调用 Java 时,有几点需要注意:

  • 将代码标记为 @Nullable 和 @NotNull

  • 使用属性前缀(getName(), setName(), isActive())

  • 避免使用 Kotlin 中的保留关键字(when、is 等)

更详细的 Kotlin 互操作指南可以查看 Android 开发者网站:

https://developer.android.google.cn/kotlin/interop

内容引用自:谷歌开发者 

展开阅读全文
12 收藏
分享
加载中
精彩评论
还是Java用得习惯,敲起代码来都刹不住车,不像其他什么scala之类,用一下就卡壳,到处翻文档。
2019-11-09 11:32
7
举报
底层还是jvm就不可能不支持java,除非实现一个非jvm的kotlin运行时
2019-11-09 22:20
3
举报
谷歌从来没说过,不支持java
2019-11-09 13:57
3
举报
没看见 Kotlin-first吗?后面慢慢不支持java,由不得你不换,再说 kotlin比java好用,高效率这还用说嘛
2019-11-09 10:47
3
举报
kotlin不会大火,也不会消失,最后可能会像groovy lua一样,找到自己的归属。
2019-11-09 09:46
3
举报
最新评论 (19)
我们公司也全面转移了
2019-11-12 09:33
0
回复
举报
需要加个jar才能才能将kotilin转成java吗?
2019-11-10 15:05
0
回复
举报
谷歌这是为了避免oracle纠纷,加上用jb的开发环境也是很拼,用kotlin也解决语言的问题
2019-11-09 20:02
1
回复
举报
还是Java用得习惯,敲起代码来都刹不住车,不像其他什么scala之类,用一下就卡壳,到处翻文档。
2019-11-09 11:32
7
回复
举报
为什么要迁移?好用?提高效率
2019-11-09 10:29
0
回复
举报
没看见 Kotlin-first吗?后面慢慢不支持java,由不得你不换,再说 kotlin比java好用,高效率这还用说嘛
2019-11-09 10:47
3
回复
举报
想多了
2019-11-09 11:25
0
回复
举报
并每没有。我们公司的安卓新项目已经全部切kotlin了
2019-11-09 11:32
0
回复
举报
我想问一下。kotlin的学习成本高不?对于没学过编程的人而言
2019-11-09 11:41
0
回复
举报
安卓又不是java全部生态, java在Web端也是占这领先地位, 对我个人来说要迁移就迁移Rust, kotlin 比 java好不到哪里去
2019-11-09 13:10
0
回复
举报
java缺少了安卓这个份额。占有率第一的宝座不保了,安卓对java的分量不比服务端少.
2019-11-10 12:59
0
回复
举报
我司服务端Java项目也换成Kotlin了
2019-11-09 14:23
0
回复
举报
谷歌从来没说过,不支持java
2019-11-09 13:57
3
回复
举报
底层还是jvm就不可能不支持java,除非实现一个非jvm的kotlin运行时
2019-11-09 22:20
3
回复
举报
kotlin有一些lib是java用不了的
2019-11-10 18:36
0
回复
举报
kotlin不会大火,也不会消失,最后可能会像groovy lua一样,找到自己的归属。
2019-11-09 09:46
3
回复
举报
Kotlin的开发者是Jetbrains,顶级的IDE开发工具商,是JCP成员,实力上是足够的.
而且拿来主义者Google为了早日解决跟Oracle Java的纠纷,一直在Android开发上推广Kotlin.
这些哪是Groovy之流能比的.
2019-11-09 12:09
1
回复
举报
正解,google硬着头皮也要推下去
2019-11-09 13:47
1
回复
举报
还是 java 应用广泛
2019-11-09 08:50
0
回复
举报
更多评论
19 评论
12 收藏
分享
返回顶部
顶部