Kotlin与Java混合开发(1)✔️数据类型映射

  • Java 基本数据类型 与 Kotlin 数据类型映射
  • Java 包装类 与 Kotlin 数据类型映射
  • Java 常用类 与 Kotlin 数据类型映射
  • Java 集合类型 与 Kotlin 数据类型映射

  Kotlin毕竟还是一种新语言,所以很多项目、组件 和 框架还是用 Java 开发的,目前 Kotlin 还不能完全取代 Java,因此有时会使用 Koltin 调用 Java 写好的组件或框架,Kotlin 在设计之初时就考虑了到这一点。

  Kotlin 最终会编译为字节码在 Java 虚拟机上运行,它的一些数据类型会编译为 Java 中的数据类型。Kotlin 中的一些数据类型 与 Java 的一些数据类型有一定的映射关系,主要分为 Java 基本数据类型、Java 包装类、Java 常用类 和 Java 集合类型这 4 个方面。

Java 基本数据类型 与 Kotlin 数据类型映射

  Java 基本数据类型 与 Kotlin数据类型映射如下,其中 Kotlin 这些数据类型都是基本数据类型,位于 Koltin 包中。

Java 类型 Kotlin 类型
byte koltin.Byte
short koltin.Short
int koltin.Int
long koltin.Long
char koltin.Char
float koltin.Float
double koltin.Double
boolean koltin.Boolean

Java 包装类 与 Kotlin 数据类型映射

  Java 包装类是对 Java 基本数据类型的包装,Java 包装类可以有空值,所以映射到 Kotlin 数据类型时是可空类型,如下:

Java 类型 Kotlin 类型
java.lang.Byte koltin.Byte?
java.lang.Short koltin.Short?
java.lang.Integer koltin.Int?
java.lang.Long koltin.Long?
java.lang.Character koltin.Char?
java.lang.Float koltin.Float?
java.lang.Double koltin.Double?
java.lang.Boolean koltin.Boolean?

Java 常用类 与 Kotlin 数据类型映射

  Java 常用类是位于 java.lang 中的一些核心类,他们映射到 Kotlin 数据类型时是非空或可空类型,如下:

Java 类型 Kotlin 类型
java.lang.Object koltin.Ang!
java.lang.Cloneable koltin.Cloneable!
java.lang.Comparable koltin.Comparable!
java.lang.Enum koltin.Enum!
java.lang.Annotation koltin.Annotation!
java.lang.Number koltin.Number!
java.lang.Deprecated koltin.Deprecated!
java.lang.Throwable koltin.Throwable!
java.lang.CharSequence koltin.CharSequence!
java.lang.String koltin.String!

  提示:Kotlin 把 Java 中定义的数据类型称为 “平台类型”,Kotlin 语法中并没有平台类型的表示方式(即:平台类型不能用正确的语法表示),但是在 IntelliJ IDEA 等 IDE 工具 或 一些文档中采用 “数据类型!” 方式表示。

Java 集合类型 与 Kotlin 数据类型映射

  Java 集合类型映射到 Kotlin 的数据类型如下,Java 的集合不区分可变和不可变,而 Kotlin 中有这样的区别,在表示中还有一种平台类型,在混合编程时 Kotlin 将它们看作可空或非空,所以平台类型 (Mutable)Iterator! 表示的是 IteratorIterator?MutableIteratorMutableIterator? 四种可能性。

Java 类型 Kotlin 不可变类型 Kotlin 可变类型 平台类型
Iterator Iterator MutableIterator (Mutable)Iterator!
Iterable Iterable MutableIterable (Mutable)Iterable!
Collection Collection MutableCollection (Mutable)Collection!
Set Set MutableSet (Mutable)Set!
List List MutableList (Mutable)List!
ListIterator ListIterator MutableListIterator (Mutable)ListIterator!
Map Map MutableMap (Mutable)Map!
Map.Entry Map.Entry MutableMap.MutableEntry (Mutable)Map.(Mutable)Entry!

你可能感兴趣的:(Kotlin与Java混合开发(1)✔️数据类型映射)