if(status.equals(null))
{
status="Pass";
}
上記のコードから をスローします。NullPointerException
値を と比較するための解決策を教えてくださいnull
。
if(status.equals(null))
{
status="Pass";
}
上記のコードから をスローします。NullPointerException
値を と比較するための解決策を教えてくださいnull
。
status
それ自体はのようですnull
。だからあなたがするとき:
status.equals("null")
あなたは実際にやっています:
null.equals("null")
これがNPEを引き起こします。やったほうがいい:
if(status == null) //Now you're checking if the reference is null
//So you'll never dereference a null pointer
このリンクは役に立つかもしれません。
関連トピック:
Java では"null"
文字列です。参照を null と比較したい。以下をせよ:
if(status == null){
// code here
}
String は Java のクラスであることに注意してください。そのため、ユニット化されたオブジェクト (null オブジェクト) を使用してメソッドを呼び出すたびに、スローされます。あなたの場合、初期化されていないNullPointerException
可能性があります。String status
.
ところで、メソッドnull
を使用せずにチェックequals()
する必要があります。これは、null オブジェクトのメソッドの null 値をチェックしていることは意味がないためです。
あなたはこのようにしなければなりません
if(status == null)
//Do something
String を比較したい場合にのみ equals メソッドを使用し、静かな段階で String が初期化されていることを確認します。初期化されString status = "";
た String であり、現在は null ではありません。使用中
の情報については、代わりにlike を使用してみてください。 like を使用すると、null 文字列の場合により安全になり、equals()
"anyValue".equals(status)
status.equals("anyValue")
"anyValue".equals(status)
NullPointerException
if(status.equals("null")) //Just checking if string content/value is same
{
status="Pass";
}
これにより、ステータス変数の値(コンテンツ)が「null」文字列かどうかを確認するだけです。nullチェックを行いたい場合は、次のことを行う必要があります
if(null == status)
{
status="Pass";
}
「null」として null にすることは想定されていません。あなたの場合、コンパイラはそれを文字列と見なします。
if(stringVariable!=null)
{
//ur Code
}
(また)
if(stringVariable.equals(null))
{
//Ur code
}
文字列配列を使用している場合は、次のように実行できます
if(stringArray.isEmpty())//checks length of String array
{
//ur code
}
null で .equals を使用することはできません。使用する :
if(status == null) {
//Do something
}
これがまさに、HashMap が複数の null 値を格納できない理由です。キーは常に他の値と比較され、2 回目に null が入力されると NPE がスローされるためです。