wobuhuicode
V2EX  ›  Android

Java to kotlin 原来那么简单的。

  •  
  •   wobuhuicode · Feb 26, 2021 · 16034 views
    This topic created in 1929 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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

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