0

同じクラス内の別のコードからこのようなメソッドを呼び出しているクエリがあります

String message = "null";
//In this case have too show the Yes/No button screen
return performManualVerification(transaction, patientId, scriptInfo, message);

上記のように、メッセージには文字列 null が含まれています。これを以下のメソッドに渡しますが、デバッグ中に、null チェック ブロックに移動しないことを確認していました。null チェック ブロック内に移動する必要があります。電話ブロックはありません。お知らせ下さい

private int performManualVerification(ITransaction transaction,
      String patientId, String scriptInfo, String message)
  {

    if (message.equalsIgnoreCase(null))
    {
      int UserResponse = messageBox.showMessage("patientinfoVerification",
          null, IMessageBox.YESNO);

      if (UserResponse == IMessageBox.YES) {
               Map<String, List<String>> ppvValidatedinfo = getValidatedPatientData(transaction, patientId, scriptInfo);
        if(ppvValidatedinfo.get(patientId) != null){

          return MANUALLY_VERIFIED; // manually verified
        }      

      } 
        return RETURN_SALE;   
    }


    messageBox.showMessage("Nophone", null, IMessageBox.OK);

    int UserResponse = messageBox.showMessage("patientinfoVerification",
        null, IMessageBox.YESNO);

    if (UserResponse == IMessageBox.YES) {

      Map<String, List<String>> ppvValidatedinfo = getValidatedPatientData(transaction, patientId, scriptInfo);
      if(ppvValidatedinfo.get(patientId) != null){

        return MANUALLY_VERIFIED; // manually verified
      }      

    } 
      return RETURN_SALE;   
  }
4

3 に答える 3

2

文字列メッセージ = "null";

これは、値が null の文字列です。しかし、必要なのは、

String message = null;

Java の null とは何ですか?についてお読みください。投稿と@polygenelubricantsによって書かれた答えはよく説明されていました。

また、この制約も見てください。これにより、NullPointerExceptionif message is null が得られます。

 if (message.equalsIgnoreCase(null)) 

したがって、最初に null かどうかを確認します。

if(message == null) {
   // do something.
} else {
   // Do something.
}
于 2013-01-19T08:39:35.967 に答える
0

期待される結果を得るには、引用符で null を使用する必要があると思います。

于 2013-01-19T16:56:31.063 に答える
0

この問題を回避するnullには、別の意味を持つ だけでなく、引用符で「null」を使用する必要があります。

  • 「null」は単なる別のJava `Stringです。
  • null(引用符なし) はオブジェクト参照に割り当てることができるリテラルであり、通常はオブジェクトを参照しないことを意味します。

一方、参照に null 値を割り当てたいだけの場合は、 ではなく null リテラルを使用する必要があり、次のStringように比較できます。

    String s = null;
    if(s == null)
于 2013-01-19T08:33:43.350 に答える