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

属性读写

  • 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
  • 没有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混合开发)