美文网首页
Kotlin与Java混合开发(1)✔️数据类型映射

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

作者: 狼性代码人 | 来源:发表于2019-06-22 07:58 被阅读0次
  • 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>!

相关文章

网友评论

      本文标题:Kotlin与Java混合开发(1)✔️数据类型映射

      本文链接:https://www.haomeiwen.com/subject/sjzeqctx.html