属性读写
- 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
网友评论