美文网首页JAVA开发Android/NDK开发
(六)Kotlin 与 Java 混合开发

(六)Kotlin 与 Java 混合开发

作者: onestravel | 来源:发表于2018-12-13 15:32 被阅读1次

    一、基本互操作

    1、属性读写

    • Kotlin 自动识别 Java Getter/Setter
    • Java 操作 Kotlin 属性通过 Getter/Setter

    2、空安全类型

    • Kotlin 空安全类型的原理
    • 平台类型 Platform Type,自己明确传入的参数和返回值是否可能为空
    • 可使用注解 @Nullable 和 @NotNull 来确保不能为空

    3、几类函数的调用

    • 包级函数:静态方法
    • 扩展方法:带Receiver 的静态方法
    • 运算符重载:带 Receiver 的对应名称的静态方法

    4、几个常用注解的使用

    • @JvmField : 将属性编译为 Java 变量
    • @JvmStatic : 将对象的方法编译成 Java 静态方法
    • @JvmOverloads : 默认参数生成重载方法
    • @file:JvmName : 知道 Kotlin 文件编译后的类名,默认为 Kotlin 文件名+Kt

    5、NoArg 与 AllOpen

    • NoArg 为被标注的类生成无参构造方法
    • NoArg 支持 Jpa 注解,如:@Entity
    • AllOpen 为被标注的类去掉 final ,允许被继承
    • AllOpen 支持 Spring 注解,如: @Component
    • 支持自定义注解类型,如:@PoKo

    6、泛型

    • 通配符 Kotlin 的 * 对象于 Java 的 ?
    • 协变和逆变 out/in
    ArrayList<out String>
    
    • 没有 Raw 类型
    Java 的List  ->   Kotlin 的List<*>
    

    二、SAM 转换

    • Single Abstract Method
    • SAM 转换的条件
      Java的接口,单一接口方法
    • 注意转换后的实例变化

    三、正则表达式

    • 用 Raw 字符串定义正则表达式
    • Java 的 Pattern 在 Kotlin 中同样适用
    • 可通过Kotlin 的 Regex 自定义Kotlin 风格的正则表达式

    四、集合框架

    • Kotlin 到 Java 的类型映射
    • 不可变与可变集合接口,Kotlin 中所有的List,Map,Set 都是不可变的接口
    • 部分接口优化,比如:list.removeAt(0);

    五、IO 操作

    • File、Stream、Reader、Writer的扩展方法
    • 使用use 扩展自动关闭资源
    • 小文件一次性读取 readLines()

    六、装箱与拆箱

    • Java 的基本数据类型,都会映射到 Kotlin 中的基本类型
    • 由于Kotlin 中不区分Java 中的装箱类型与拆箱类型,需要注意规避基本类型相关的问题

    七、注解处理器

    • apply plugin: "kotlin-kapt"
    • 注意添加生成的代码路径到 SourceSets{}
    • 注意 Intellij 暂时不支持注解处理器的编译

    上一篇:(五)协程 Coroutine

    下一篇:(七)Kotlin 小案例与展望未来

    相关文章

      网友评论

        本文标题:(六)Kotlin 与 Java 混合开发

        本文链接:https://www.haomeiwen.com/subject/fucbhqtx.html