- PR -

nullについての質問です。

1
投稿者投稿内容
ポン
ベテラン
会議室デビュー日: 2006/02/15
投稿数: 98
投稿日時: 2006-03-22 15:54
お世話になっております。

nullの使い方で分からない点がありましたので質問させて頂きます。

実行しようとしている事は複数のチェックボックスがあり
そのチェックボックスにチェックをしたところはLogicで"Delete"をながして
Beanでもらって作業するというものです。

そこで"Delete"をもらいBeanで処理するところまではできたのですが
チェックをつけなかったところの処理がどうしてもうまくいきません
ソースは下記です。

//試し表示
System.out.println("フラグ:"+(String)map.get("DEL"));

Delete=(String)map.get("DEL");
System.out.println("Delete:"+Delete);
      if(Delete.equals("delete")){
     System.out.println("成功");
}else if(Delete.equals("")){
System.out.println("成功その2");
}

実行結果
*チェックボックスは現在2個あります。A、Bとさせて頂きます。
・2つともチェックした場合
フラグ:delete
Delete:delete
成功
フラグ:delete
Delete:delete
成功
・Bのみチェックした場合
フラグ:delete
Delete:delete
成功
フラグ:null
null
エラー
・Aのみチェックした場合
フラグ:null
Delete:null
エラー

となります。エラー文はでてきませんでした。
検索部分Delete.equals("")の("")を(null),("null"),else処理でも同じ結果でした。
どうしてもif文を通ると停止してしまうのです。

解決策がございましたらどうがご教授よろしくお願い致します。
tanabo
常連さん
会議室デビュー日: 2003/04/24
投稿数: 34
投稿日時: 2006-03-22 16:15
DeleteがnullになっているのでNullPointerExceptionが発生していると思います。
equalsメソッドを使用する前に、Deleteインスタンスがnullかどうかを確認してください。

コード:
if(Delete == null) {
    System.out.println("Deleteはnull");
} else {
    if(Delete.equals("delete")){
        System.out.println("成功");
    } else {
      .......
    }
}


ゆう
常連さん
会議室デビュー日: 2003/06/27
投稿数: 45
投稿日時: 2006-03-22 16:16
 先にDeleteがNullかどうか判定すれば良いのでは?

if( Delete == Null ){
 //Nullの場合の処理
}else{
 //Null以外
}

 equalsメソッドがインスタンスメソッドなら、DeleteがNullの場合は
対象のインスタンスが存在しないため、NullPointerExceptionが発生す
るのではないでしょうか?
ポン
ベテラン
会議室デビュー日: 2006/02/15
投稿数: 98
投稿日時: 2006-03-22 16:23
悠さんありがとうございます。
記述のとおりしてみたところ成功しました。
ポン
ベテラン
会議室デビュー日: 2006/02/15
投稿数: 98
投稿日時: 2006-03-22 16:25
すみません、逆順で悠さんの名前しかみておりませんでした。
tanaboさんありがとうございます。
お2人とも本当にありがとうございました。
おっきー
大ベテラン
会議室デビュー日: 2003/05/01
投稿数: 104
投稿日時: 2006-03-22 16:37
equals メソッドの呼出元インスタンスが存在すればいいわけなので、

コード:
if("delete".equals(Delete)) {
    System.out.println("成功");
}else if("".equals(Delete) {
    System.out.println("成功その2");
}



の様にすれば Delete が null でも大丈夫です。
1

スキルアップ/キャリアアップ(JOB@IT)