Kotlin中Int和Integer的区别是什么?
我试过在Kotlin中使用Int和Integer类型,虽然我没有看到任何区别。Kotlin中Int和Integer的区别是什么?,kotlin,Kotlin,我试过在Kotlin中使用Int和Integer类型,虽然我没有看到任何区别。 Kotlin中的Int和Integer类型之间是否有差异?或者它们是否相同?aInt是一种基本类型。这相当于jvmint 可为空的IntInt?是装箱类型。这相当于java.lang.Integer只要看看 在Java平台上,数字被物理存储为JVM原语 类型,除非我们需要可为空的数字引用(例如Int?)或 涉及仿制药。在后一种情况下,数字被装箱 这意味着,Int表示为基元Int。只有在涉及可空性或泛型的情况下,才必须
Kotlin中的Int和Integer类型之间是否有差异?或者它们是否相同?a
Int
是一种基本类型。这相当于jvmint
可为空的IntInt?
是装箱类型。这相当于java.lang.Integer
只要看看
在Java平台上,数字被物理存储为JVM原语
类型,除非我们需要可为空的数字引用(例如Int?)或
涉及仿制药。在后一种情况下,数字被装箱
这意味着,Int
表示为基元Int
。只有在涉及可空性或泛型的情况下,才必须使用支持包装类型Integer
。
如果从一开始就使用
Integer
,则始终使用包装类型,而从不使用原语int
int
是从Number
派生的Kotlin类
[Int]表示32位有符号整数。在JVM上,不可为null的值
此类型表示为基本类型int的值
Integer
是一个Java类
如果要在Kotlin规范中搜索“整数”,则没有KotlinInteger
类型
如果在IntelliJ中使用表达式is Integer
,IDE会发出警告
此类型不应在Kotlin中使用,请改用Int
Integer
将与Kotlin Int很好地互操作,但它们在行为上确实存在一些细微的差异,例如:
val one: Integer = 1 // error: "The integer literal does not conform to the expected type Integer"
val two: Integer = Integer(2) // compiles
val three: Int = Int(3) // does not compile
val four: Int = 4 // compiles
在Java中,有时需要将整数显式地“装箱”为对象。在Kotlin中,只有可为空的整数(Int?
)被装箱。显式尝试框选不可为空的整数将导致编译器错误:
val three: Int = Int(3) // error: "Cannot access '<init>': it is private in 'Int'
val four: Any = 4 // implicit boxing compiles (or is it really boxed?)
相关:当与泛型一起使用时,不可为null的
Int
将被装箱。例如,List
将包含装箱整数。由于我在文档中找不到线索,您能添加一个引用吗?
when(four) {
is Int -> println("is Int")
is Integer -> println("is Integer")
else -> println("is other")
} //prints "is Int"
when(four) {
is Integer -> println("is Integer")
is Int -> println("is Int")
else -> println("is other")
} //prints "is Integer"