Java类型与Kotlin类型对应关系

举报
yd_221104950 发表于 2020/12/31 00:25:56 2020/12/31
【摘要】 对有Java基础的小伙伴来说,掌握Kotlin的基本使用是很容易的。我们编程时,时刻都要与类型打交道,因此了解这两门语言的类型的对应关系,就可以在写Kotlin时借用很多Java的思考习惯。下面列出一些类型的对应关系: 1.Java拆箱基本类型对应的Kotlin类型 Java TypeKotlin Typebytekotlin.Byteshortkotlin.Sho...

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

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

Java Type Kotlin Type
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的基本类型的首字母大写就是Kotlin类型。

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

Java Type Kotlin Type
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>会映射为List<Int!>

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

Java Type Kotlin Type
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.CharSequence kotlin.CharSequence!
java.lang.String kotlin.String!
java.lang.Number kotlin.Number!
java.lang.Throwable kotlin.Throwable!

4.集合类型的映射

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

Java type Kotlin read-only type Kotlin mutable type Loaded 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 Array Kotlin Array
byte[] ByteArray
short[] ShortArray
int[] IntArray
long[] LongArray
char[] CharArray
float[] FloatArray
double[] DoubleArray
boolean[] BooleanArray

Happy Ending!

文章来源: blog.csdn.net,作者:WongKyunban,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_40763897/article/details/111956633

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。