Java类型与Kotlin类型对应关系

对有Java基础的小伙伴来说,掌握Kotlin的基本使用是很容易的。我们编程时,时刻都要与类型打交道,因此了解这两门语言的类型的对应关系,就可以在写Kotlin时借用很多Java的思考习惯。下面列出一些类型的对应关系:

1.Java拆箱基本类型对应的Kotlin类型

Java TypeKotlin Type
bytekotlin.Byte
shortkotlin.Short
intkotlin.Int
longkotlin.Long
charkotlin.Char
floatkotlin.Float
doublekotlin.Double
booleankotlin.Boolean

从使用的角度来看,就是Java的基本类型的首字母大写就是Kotlin类型。

2.Java装箱基本类型会对应到Kotlin的可空类型

Java TypeKotlin Type
java.lang.Bytekotlin.Byte?
java.lang.Shortkotlin.Short?
java.lang.Integerkotlin.Int?
java.lang.Longkotlin.Long?
java.lang.Characterkotlin.Char?
java.lang.Floatkotlin.Float?
java.lang.Doublekotlin.Double?
java.lang.Booleankotlin.Boolean?

请留意:Java的装箱基本类型被用于类型参数时,会映射到一个Kotlin平台类型,如:

List<java.lang.Integer>会映射为List<Int!>

3.Java内置类对应的Kotlin内置类

Java TypeKotlin Type
java.lang.Objectkotlin.Any!
java.lang.Cloneablekotlin.Cloneable!
java.lang.Comparablekotlin.Comparable!
java.lang.Enumkotlin.Enum!
java.lang.Annotationkotlin.Annotation!
java.lang.CharSequencekotlin.CharSequence!
java.lang.Stringkotlin.String!
java.lang.Numberkotlin.Number!
java.lang.Throwablekotlin.Throwable!

4.集合类型的映射

在Kotlin中,集合类型可能是只读的,也可能是mutable(可改变)的。因此,Java的集合类型映射如下:

Java typeKotlin read-only typeKotlin mutable typeLoaded platform type
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>!

5.Java数组对应的Kotlin数组

数组在Kotlin中是不可变的,不像Java。这就意味Kotlin不允许将一个Array赋值Array,这就可以阻止在运行中可能产生的错误。传递一个子类的数组作为一个超类数组给Kotlin的方法也是不允许的。这在Java方法中是允许的。数组与Java平台上的原始数据类型一起使用,以避免 装箱/拆箱操作。
由于Kotlin隐藏了这些实现细节,变通的方法是与Java代码接合。 所以Kotlin为每一个原生数组类型提供了专门的类IntArray , DoubleArray , CharArray 等来处理这种情况。它们不是Array类相关的,并向下编译为Java的基本数组以获得最大性能。

Java ArrayKotlin Array
byte[]ByteArray
short[]ShortArray
int[]IntArray
long[]LongArray
char[]CharArray
float[]FloatArray
double[]DoubleArray
boolean[]BooleanArray

Happy Ending!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值