Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin 原语伴随常量和java包装常量之间的差异_Kotlin_Constants_Primitive - Fatal编程技术网

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(对象

Kotlin重新定义了许多已经在Java中定义的基本常量,例如
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

kotlin
Long
类(以及在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
    vs
    MutableList

  • 库的这一部分可以从Kotlin JS或Kotlin Native或其他未来的Kotlin实现中访问

  • 出于这两个原因,请坚持使用Kotlin标准库类型和方法,除非您有使用Java库的特殊需要


    Long
    (和
    Int
    ,等等)甚至是一种特殊情况,因为它们对应于不止一种Java类型:在某些上下文中,它们最终成为原语(
    Long
    ),而在另一些上下文中则作为装箱版本(
    Java.lang.Long
    )。您通常不关心Kotlin中的这种差异,因此有更好的理由继续使用
    Kotlin。Long

    这是一个普遍现象:Kotlin标准库的很大一部分与Java中的基本相同。这就是

  • Kotlin可以提供更精确的类型:可空与不可空或
    List
    vs
    MutableList

  • 库的这一部分可以从Kotlin JS或Kotlin Native或其他未来的Kotlin实现中访问

  • 出于这两个原因,请坚持使用Kotlin标准库类型和方法,除非您有使用Java库的特殊需要

    Long
    (和
    Int
    ,等等)甚至是一种特殊情况,因为它们对应于不止一种Java类型:在某些上下文中,它们最终成为原语(
    Long
    ),而在另一些上下文中则作为装箱版本(
    Java.lang.Long
    )。您通常不关心Kotlin中的这种差异,因此有更好的理由继续使用
    Kotlin.Long