Integer
がラッパーであるint
は、プリミティブ型であるため、Javaは約{INT == nulltype}対{整数== nulltype}
// int i;
if(i == null){ }
なく約
// Integer i;
if(i == null){ }
Integer
がラッパーであるint
は、プリミティブ型であるため、Javaは約{INT == nulltype}対{整数== nulltype}
// int i;
if(i == null){ }
なく約
// Integer i;
if(i == null){ }
Integerは参照型であり、int
ではない - つまり、int
はポインタではないため、何も指すことはできません。
を訴える理由クラス。
はInteger
が参照型である(そのようなものとしてnull
することができる)しながらint
を値型である(そのようにnull
ことができない)、異なる言います。
Javaでは、すべてのプリミティブ型(boolean
,double
またはchar
など)は値型です。プリミティブ型はObject
から継承されないため、このような動作が必要な場合(例えば、コンテナに入れたり、ジェネリックとして使用する場合など)、一連のラッパークラスが提供されます(Boolean
、Double
、Character
)。タイプパラメータ)。
その結果、プリミティブ型は実際にはJavaの第2世代の市民です。
intは値型であり、nullにはできないため、オブジェクト自体です。一方、整数は参照型であり、ヌルまたはオブジェクトへの参照を保持することができます。
int(プリミティブ型)はnullにできません。