-
10.7 Kotlin与Java中的类型映射
-
Kotlin 特殊处理一部分 Java 类型。这样的类型不是“按原样”从 Java 加载,而是映射到相应的 Kotlin 类型。
映射只发生在编译期间,运行时表示保持不变。
Java 的原生类型映射到相应的 Kotlin 类型:
Java 类型 Kotlin 类型 byte kotlin.Byte short kotlin.Short int kotlin.Int long kotlin.Long char kotlin.Char float kotlin.Float double kotlin.Double boolean kotlin.Boolean Java中的一些内置类型也会作相应的映射:
Java 类型 Kotlin 类型 java.lang.Object kotlin.Any! java.lang.Cloneable kotlin.Cloneable! java.lang.Comparable kotlin.Comparable! java.lang.Enum kotlin.Enum! java.lang.Annotation kotlin.Annotation! java.lang.Deprecated kotlin.Deprecated! java.lang.CharSequence kotlin.CharSequence! java.lang.String kotlin.String! java.lang.Number kotlin.Number! java.lang.Throwable kotlin.Throwable! Java 的装箱原始类型映射到对应的可空Kotlin 类型:
Java 类型 Kotlin 类型 java.lang.Byte kotlin.Byte? java.lang.Short kotlin.Short? java.lang.Integer kotlin.Int? java.lang.Long kotlin.Long? java.lang.Character kotlin.Char? java.lang.Float kotlin.Float? java.lang.Double kotlin.Double? java.lang.Boolean kotlin.Boolean? 另外,用作类型参数的Java类型映射到Kotlin中的平台类型:
例如,List<java.lang.Integer> 在 Kotlin 中会成为 List<Int!>。集合类型在 Kotlin 中可以是只读的或可变的,因此 Java 集合类型作如下映射:
(下表中的所有 Kotlin 类型都在 kotlin.collections包中):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>! Java 的数组映射:
Java 类型 Kotlin 类型 int[] kotlin.IntArray! String[] kotlin.Array<(out) String>! - 留下你的读书笔记
- 你还没登录,点击这里
-
用户笔记留言