V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wobuhuicode
V2EX  ›  Android

Java to kotlin 原来那么简单的。

  •  
  •   wobuhuicode · 2021-02-26 15:26:06 +08:00 · 11201 次点击
    这是一个创建于 1350 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    15 条回复    2021-02-28 12:24:54 +08:00
    KeyboardManAnAn
        1
    KeyboardManAnAn  
       2021-02-26 15:50:47 +08:00
    这个确实是 Android Studio 的良心功能, 我第一次用的时候确实是被惊艳到了. 相比较而言, Objective-C 转 Swift 就蛋疼太多了, 虽然也有收费应用能够实现自动转换代码的功能, 但是远不及 IDE 自带的转换功能体验来得好我觉得
    zagfai
        2
    zagfai  
       2021-02-26 17:44:02 +08:00   ❤️ 1
    Java 转 Kotlin 转完之后是 KotJava,改得了的代码,改不了的编程思维。
    winterbells
        3
    winterbells  
       2021-02-26 17:58:13 +08:00
    Ctrl + Alt + Shift + K
    teok
        4
    teok  
       2021-02-26 18:25:02 +08:00
    @zagfai 的确是这样。语法很好学,符合这语言设计哲学的编程思维需要很多时间去实践掌握
    HangoX
        5
    HangoX  
       2021-02-26 18:27:50 +08:00
    反过来没有,当你要粘贴到 java 的项目的时候有点绝望。
    DiDiz
        6
    DiDiz  
       2021-02-26 18:28:45 +08:00
    花一点时间去学 Kotlin 呗,又不难,一周就够了
    Anarchy
        7
    Anarchy  
       2021-02-26 18:54:04 +08:00
    自动转还是可能出问题的,特别 Lambda,匿名内部类这块。
    zhang2e
        8
    zhang2e  
       2021-02-26 18:58:16 +08:00
    自动转出的代码,其实还是用 Java 的思维写 Kotlin,Kotlin 的特性都没有用到,一堆警告,很不优雅。
    hantsy
        9
    hantsy  
       2021-02-26 19:02:13 +08:00
    @Anarchy 转 Lambda 的确问题太多。特别是在用一些 Stream 类似的 API 时。
    wobuhuicode
        10
    wobuhuicode  
    OP
       2021-02-26 20:10:02 +08:00
    @DiDiz 这也有的杆……全篇有说我不会 kotlin 吗……说的是旧代码抽出来做库
    night98
        11
    night98  
       2021-02-26 20:56:32 +08:00
    文件右键就能直接转了,IDEA 是这样的,不过通常会在一些代码例如 lambda 或是一些 spring 相关的代码上出现问题,不过我这边是后端,安卓这块可能有一定差异
    sagaxu
        12
    sagaxu  
       2021-02-26 21:02:17 +08:00 via Android
    以前自动翻译的代码质量差,远不如人肉翻译,自动转化有时候还编译不过,现在改善了吗?
    wobuhuicode
        13
    wobuhuicode  
    OP
       2021-02-26 21:29:55 +08:00 via iPhone
    @night98 我这里需求有点不一样。rn 类库手脚架模版文件已经创建好了,只需要把以前的业务代码复制到指定位置就好了。所以没有直接转。
    zerofancy
        14
    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
        15
    HangoX  
       2021-02-28 12:24:54 +08:00
    @zerofancy 我知道可以看字节码反编译,kt 插件集成了,但是那个代码基本是不能用的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5363 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 07:06 · PVG 15:06 · LAX 23:06 · JFK 02:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.