- 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<T>!
表示的是 Iterator<T>
、Iterator<T>?
、 MutableIterator<T>
和 MutableIterator<T>?
四种可能性。
Java 类型 | Kotlin 不可变类型 | Kotlin 可变类型 | 平台类型 |
---|---|---|---|
Iterator<T> | Iterator<T> | MutableIterator<T> | (Mutable)Iterator<T>! |
Iterable<T> | Iterable<T> | MutableIterable<T> | (Mutable)Iterable<T>! |
Collection<T> | Collection<T> | MutableCollection<T> | (Mutable)Collection<T>! |
Set<T> | Set<T> | MutableSet<T> | (Mutable)Set<T>! |
List<T> | List<T> | MutableList<T> | (Mutable)List<T>! |
ListIterator<T> | ListIterator<T> | MutableListIterator<T> | (Mutable)ListIterator<T>! |
Map<K, V> | Map<K, V> | MutableMap<K, V> | (Mutable)Map<K, V>! |
Map.Entry<K, V> | Map.Entry<K, V> | MutableMap.MutableEntry<K, V> | (Mutable)Map.(Mutable)Entry<K, V>! |
网友评论