Java to kotlin 原来那么简单的。

2021-02-26 15:26:06 +08:00
 wobuhuicode

最近做 RN 还要写写原生安卓和 IOS 。于是想把业务中的库拉出来整合一下。

发现社区出了 react-native-builder-bob 来做组件手脚架。

模版只有支持 kotlin + oc / kotlin + swift / C++

我自己业务都是用 java + oc 来写原生库的。唯有选择 kotlin + oc 。

看到 md 上说 java 代码直接复制到对应的 KT 文件去,AS 编辑器就会自动帮你转的了。

试了一下,果然可以。所有啰嗦的 java 语法都变成了简洁的 kotlin 。

11471 次点击
所在节点    Android
15 条回复
KeyboardManAnAn
2021-02-26 15:50:47 +08:00
这个确实是 Android Studio 的良心功能, 我第一次用的时候确实是被惊艳到了. 相比较而言, Objective-C 转 Swift 就蛋疼太多了, 虽然也有收费应用能够实现自动转换代码的功能, 但是远不及 IDE 自带的转换功能体验来得好我觉得
zagfai
2021-02-26 17:44:02 +08:00
Java 转 Kotlin 转完之后是 KotJava,改得了的代码,改不了的编程思维。
winterbells
2021-02-26 17:58:13 +08:00
Ctrl + Alt + Shift + K
teok
2021-02-26 18:25:02 +08:00
@zagfai 的确是这样。语法很好学,符合这语言设计哲学的编程思维需要很多时间去实践掌握
HangoX
2021-02-26 18:27:50 +08:00
反过来没有,当你要粘贴到 java 的项目的时候有点绝望。
DiDiz
2021-02-26 18:28:45 +08:00
花一点时间去学 Kotlin 呗,又不难,一周就够了
Anarchy
2021-02-26 18:54:04 +08:00
自动转还是可能出问题的,特别 Lambda,匿名内部类这块。
zhang2e
2021-02-26 18:58:16 +08:00
自动转出的代码,其实还是用 Java 的思维写 Kotlin,Kotlin 的特性都没有用到,一堆警告,很不优雅。
hantsy
2021-02-26 19:02:13 +08:00
@Anarchy 转 Lambda 的确问题太多。特别是在用一些 Stream 类似的 API 时。
wobuhuicode
2021-02-26 20:10:02 +08:00
@DiDiz 这也有的杆……全篇有说我不会 kotlin 吗……说的是旧代码抽出来做库
night98
2021-02-26 20:56:32 +08:00
文件右键就能直接转了,IDEA 是这样的,不过通常会在一些代码例如 lambda 或是一些 spring 相关的代码上出现问题,不过我这边是后端,安卓这块可能有一定差异
sagaxu
2021-02-26 21:02:17 +08:00
以前自动翻译的代码质量差,远不如人肉翻译,自动转化有时候还编译不过,现在改善了吗?
wobuhuicode
2021-02-26 21:29:55 +08:00
@night98 我这里需求有点不一样。rn 类库手脚架模版文件已经创建好了,只需要把以前的业务代码复制到指定位置就好了。所以没有直接转。
zerofancy
2021-02-27 22:46:56 +08:00
@HangoX 反过来可以通过先查看字节码再反编译的方式,不过肯定还是要自己进行一些调整啥的
https://blog.mindorks.com/how-to-convert-a-kotlin-source-file-to-a-java-source-file
HangoX
2021-02-28 12:24:54 +08:00
@zerofancy 我知道可以看字节码反编译,kt 插件集成了,但是那个代码基本是不能用的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/756521

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX