美文网首页
Kotlin(三)——Java和Kotlin混合开发

Kotlin(三)——Java和Kotlin混合开发

作者: 紫依卓兰 | 来源:发表于2018-11-12 17:14 被阅读38次

    属性读写

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

    空安全类型

    • Kotlin空安全类型的原理
    • 平台类型Paltform Type
    • Java 中也可以通过@Nullable和@NotNull

    几类函数的调用

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

    几个常见注解的使用

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

    Noarg 与AllOpen

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

    泛型

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

    SAM转换(Single Abstract Method

    • SAM转换条件:java的接口,单一接口方法
    • Kotlin中接口SAM不被支持,可以通过类型别名(Typealia)定义

    正则表达式

    • 用Raw字符串定义正则表达式
    val pattern = ***.*(\d{3}-\d{8****
    
    • java 的Pattern在Kotlin中直接使用
    • Kotlin中的Regex

    集合框架

    • Kotlin到Java的类型映射:List(set/map)或MultableList的映射到Java的java.util.list
    • 可变集合和不可变集合
    • 部分接口优化(list.remove/removeAt)

    IO操作

    • File、Stream、Reader、Writer的扩展方法
    • 小文件一次读写:readLines()...

    装箱和拆箱

    -了解Kotlin基本类型到Java的映射关系
    -注意规避基本类型相关的问题

    注解处理器

    apply piugin:"Kotlin-kapt"
    
    • 注意添加生成的代码到SourceSets
    • 需手动在gradle的build

    相关文章

      网友评论

          本文标题:Kotlin(三)——Java和Kotlin混合开发

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