web-dev-qa-db-ja.com

intがnullかどうかを調べる方法

Personというオブジェクトがあります。

それにはいくつかの属性があります。

int id;
String name;

私はPerson p = new Person(1,"Joe");のような人物オブジェクトを設定します。

1.)オブジェクトがnullでないことを確認する必要があります。次の表現は正しいですか。

if (person == null){
}

Or


if(person.equals(null))

2.)IDにIntが含まれているかどうかを知る必要があります。

if(person.getId()==null){} 

しかし、Javaはそれを許可していません。どうやってこのチェックをすることができますか?

91
sharon Hwk

intはnullではありません。初期化されていない場合は0である可能性があります。

整数をNULLにできるようにするには、Integerの代わりにintを使用する必要があります。

Integer id;
String name;

public Integer getId() { return id; }

personがnullの場合はNullPointerExceptionがスローされるため、ステートメントif(person.equals(null))をtrueにすることはできません。正しい式はif (person == null)です。

154
Alex

プリミティブはnull値を持ちません。 intに対するデフォルトのhaveは0です。

if(person.getId()==0){}

Javaにおけるプリミティブのデフォルト値:

Data Type   Default Value (for fields)

byte                0
short               0
int                 0
long            0L
float           0.0f
double          0.0d
char            '\u0000'
boolean         false

オブジェクトはデフォルト値としてnullを持ちます。

文字列(または任意のオブジェクト)---> null

1.)オブジェクトがnullでないことを確認する必要があります。次の表現は正しいですか。

if (person == null){
}

上記のコードはpersonがnullかどうかをチェックします。あなたがする必要があります

if (person != null){ // checks if person is not null
}

そして

if(person.equals(null))

人がnullの場合、上記のコードはNullPointerExceptionをスローします。

41
PermGenError

プリミティブintはnullにできません。 nullが必要な場合は、代わりにIntegerを使用してください。

11
Zutty

1.)オブジェクトがnullでないことを確認する必要があります。次の表現は正しいですか。

if(person == null){}

YES。これは、objectがnullかどうかを確認する方法です。

2.)IDにIntが含まれているかどうかを知る必要があります。

if(person.getId()== null){}

NOidはプリミティブintとして定義されているため、デフォルトで0で初期化され、nullになることはありません。プリミティブ型がnullの場合は、チェックする必要はありません。それらは決してnullにはなりません。必要に応じて、デフォルト値0if(person.getId()==0){}と比較できます。

2
Yogendra Singh

あなたはあなたのクラスの属性にアクセスする必要があります。

それにアクセスするには、次のようにする必要があります。

person.id
person.name

どこで

はあなたのクラスPersonのインスタンスです。

属性にアクセスできる場合はこれを実行できます。それ以外の場合は、設定メソッドと取得メソッドを使用する必要があります。

0
melli-182