文字列に意味のある値がある場合にのみ、何らかのアクションを実行したい。だから、これを試しました。
if (!myString.equals("")) {
doSomething
}
この
if (!myString.equals(null)) {
doSomething
}
この
if ( (!myString.equals("")) && (!myString.equals(null))) {
doSomething
}
この
if ( (!myString.equals("")) && (myString!=null)) {
doSomething
}
この
if ( myString.length()>0) {
doSomething
}
そして、すべての場合において、doSomething私のストリングが空であるという事実にもかかわらず、私のプログラムは。と等しいnull。それで、それで何が悪いのですか?
追加:
問題の理由を見つけました。変数が文字列として宣言され、その結果、nullこの変数に割り当てられたものが"null"!つまり、if (!myString.equals("null"))動作します。
System.out.println(myString)何があるか見られるようにifブロックの直前にいることをお勧めしますか?
null?
nullこの変数に割り当てられて変換されました"null"-これはひどい考えです。可能な場合は、このデザインを変更してみてください。
nullメソッドがないため、メソッドもありませんequals()。もしmyStringあったらnull、どうやってそのメソッドを呼び出すのでしょうか?:)