Kotlin 原语伴随常量和java包装常量之间的差异
Kotlin重新定义了许多已经在Java中定义的基本常量,例如Kotlin 原语伴随常量和java包装常量之间的差异,kotlin,constants,primitive,Kotlin,Constants,Primitive,Kotlin重新定义了许多已经在Java中定义的基本常量,例如Long.MAX_VALUE或Double.NaN 它们之间的区别是什么?在Kotlin中编码时应首选哪一种 说清楚一点,我指的是,例如: kotlin.Long.Companion.MAX_VALUE java.lang.Long.MAX_VALUE KotlinLong类(以及所有其他在Java中具有对应项的类)是包装器,这取决于该类型是可为null的还是不在内部(JVM上)用int(原语,不可为null)或Integer(对象
Long.MAX_VALUE
或Double.NaN
它们之间的区别是什么?在Kotlin中编码时应首选哪一种
说清楚一点,我指的是,例如:
kotlin.Long.Companion.MAX_VALUE
java.lang.Long.MAX_VALUE
Kotlin
Long
类(以及所有其他在Java中具有对应项的类)是包装器,这取决于该类型是可为null的还是不在内部(JVM上)用int
(原语,不可为null)或Integer
(对象,可为null)表示值
看一看:
表示64位有符号整数。在JVM上,此类型的不可空值表示为原语类型
long
的值
Kotlin和Java版本的
MAX_VALUE
都是9223372036854775807L
,但是由于Kotlin.Long
是一个包装器,它的实现可能会发生变化,这可能会改变MAX_VALUE
,因此最好坚持使用kotlin.Long.Companion.MAX_VALUE
kotlinLong
类(以及在Java中具有对应项的所有其他类)是包装器,这取决于该类型是否可以为null,或者是否在内部(JVM上)使用int
(原语,不可以为null)或Integer
(对象,可为空)
看一看:
表示64位有符号整数。在JVM上,此类型的不可空值表示为原语类型
long
的值
Kotlin和Java版本的
MAX_-VALUE
都是9223372036854775807L
,但是由于Kotlin.Long
是一个包装器,它的实现可以改变,这可能会改变MAX_-VALUE
,所以最好还是坚持Kotlin.Long.Companion.MAX_-VALUE,这是一个普遍的现象:aKotlin标准库的大部分与Java中的基本相同
Kotlin可以提供更精确的类型:可空与不可空或List
vsMutableList
库的这一部分可以从Kotlin JS或Kotlin Native或其他未来的Kotlin实现中访问
出于这两个原因,请坚持使用Kotlin标准库类型和方法,除非您有使用Java库的特殊需要
Long
(和Int
,等等)甚至是一种特殊情况,因为它们对应于不止一种Java类型:在某些上下文中,它们最终成为原语(Long
),而在另一些上下文中则作为装箱版本(Java.lang.Long
)。您通常不关心Kotlin中的这种差异,因此有更好的理由继续使用Kotlin。Long
这是一个普遍现象:Kotlin标准库的很大一部分与Java中的基本相同。这就是
Kotlin可以提供更精确的类型:可空与不可空或List
vsMutableList
库的这一部分可以从Kotlin JS或Kotlin Native或其他未来的Kotlin实现中访问
出于这两个原因,请坚持使用Kotlin标准库类型和方法,除非您有使用Java库的特殊需要
Long
(和Int
,等等)甚至是一种特殊情况,因为它们对应于不止一种Java类型:在某些上下文中,它们最终成为原语(Long
),而在另一些上下文中则作为装箱版本(Java.lang.Long
)。您通常不关心Kotlin中的这种差异,因此有更好的理由继续使用Kotlin.Long