gpt4 book ai didi

kotlin - Kotlin 中的 Int 和 Integer 有什么区别?

转载 作者:IT老高 更新时间:2023-10-28 13:31:30 32 4
gpt4 key购买 nike

我曾尝试在 Kotlin 中使用 Int 和 Integer 类型。尽管我看不出有任何区别。Kotlin 中的 Int 和 Integer 类型有区别吗?还是一样?

最佳答案

Int 是从 Number 派生的 Kotlin 类。 See doc

[Int] Represents a 32-bit signed integer. On the JVM, non-nullable values of this type are represented as values of the primitive type int.

Integer 是一个 Java 类。

如果您要在 Kotlin 规范中搜索“Integer”,则没有 Kotlin Integer 类型。

如果您在 IntelliJ 中使用表达式 is Integer,IDE 会发出警告...

This type shouldn't be used in Kotlin, use Int instead.

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 中,只有 Nullable 整数 (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?)

IntInteger (java.lang.Integer) 大部分时间会被视为相同。

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"

关于kotlin - Kotlin 中的 Int 和 Integer 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46274888/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com