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はそれを許可していません。どうやってこのチェックをすることができますか?
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)
です。
プリミティブは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をスローします。
プリミティブint
はnullにできません。 nullが必要な場合は、代わりにInteger
を使用してください。
1.)オブジェクトがnullでないことを確認する必要があります。次の表現は正しいですか。
if(person == null){}
YES。これは、objectがnull
かどうかを確認する方法です。
2.)IDにIntが含まれているかどうかを知る必要があります。
if(person.getId()== null){}
NOid
はプリミティブint
として定義されているため、デフォルトで0
で初期化され、null
になることはありません。プリミティブ型がnullの場合は、チェックする必要はありません。それらは決してnullにはなりません。必要に応じて、デフォルト値0
をif(person.getId()==0){}
と比較できます。
あなたはあなたのクラスの属性にアクセスする必要があります。
それにアクセスするには、次のようにする必要があります。
person.id
person.name
どこで
人
はあなたのクラスPersonのインスタンスです。
属性にアクセスできる場合はこれを実行できます。それ以外の場合は、設定メソッドと取得メソッドを使用する必要があります。