2013-01-19 31 views
0

我有一個查詢我同一類內使像這樣的方法的呼叫從另一段代碼爲什麼這段代碼會進入我的方法的錯誤塊?

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

正如所看到的上述消息包含字符串空我傳遞這對下面的方法,但在調試我正在檢查,它不是爲空檢查塊,它應該進入空檢查塊,它正在進行沒有手機塊。請指教

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; 
    } 

回答

0

爲了解決這個問題,你應該用「空」加上引號,而不僅僅是null,具有不同的意義。

  • 「null」只是另一個Java字符串。
  • null(不含引號)是一個文字,可以分配給對象引用,通常意味着它們不引用任何對象。

在另一方面,如果你只是想分配基準空值,你應該使用null文本,而不是String,你可以這樣比較一下:

String s = null; 
    if(s == null) 
2

String message =「null」;

這是一個值爲空的字符串。但是,你需要的是,

String message = null; 

閱讀What is null in Java?後和@polygenelubricants寫的答案是很好的解釋。

也看看這個約束,如果消息爲空,這會給你一個NullPointerException

if (message.equalsIgnoreCase(null)) 

因此首先檢查它是否爲空。

if(message == null) { 
    // do something. 
} else { 
    // Do something. 
} 
+0

@ user1982609如果有幫助,請接受我的回答。 – Amarnath

0

我想你應該在引號中使用null來獲得預期的結果。

相關問題