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<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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容