133

というオブジェクトがあります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 はそれを許可しません。どうすればこのチェックを行うことができますか?

4

7 に答える 7

217

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

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

Integer id;
String name;

public Integer getId() { return id; }

が null の場合は aがスローされるため、ステートメントif(person.equals(null))は true にはなりません。なので正しい表現はpersonNullPointerExceptionif (person == null)

于 2012-12-06T16:18:31.503 に答える
53

プリミティブには null 値がありません。int のデフォルトは 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))

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

于 2012-12-06T16:18:52.707 に答える
17

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

于 2012-12-06T16:18:23.223 に答える
3

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

if (人 == null){ }

はい。これは、オブジェクトが であるかどうかを確認する方法ですnull

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

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

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

于 2012-12-06T16:26:09.180 に答える
0

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

属性にアクセスするには、次のことを行う必要があります。

person.id
person.name

どこ

クラス Person のインスタンスです。

これは、属性にアクセスできる場合に実行できます。アクセスできない場合は、セッターとゲッターを使用する必要があります...

于 2012-12-06T16:19:38.053 に答える
-1

使用できます

if (person == null || String.valueOf(person.getId() == null)) 

通常のアプローチに加えて

person.getId() == 0
于 2015-12-14T16:27:54.067 に答える