我似乎遇到布爾測試問題。當我使用此代碼時:布爾測試問題
public boolean setPkg (String inPkg)
{
boolean isValid;
if ((inPkg.toUpperCase() != "A") || (inPkg.toUpperCase() != "B") || (inPkg.toUpperCase() != "C"))
isValid = false;
else
{
pkg = inPkg;
isValid = true;
}
return isValid;
}
它在「A」上返回false。但是,當我只測試「A」時:
...
if (inPkg.toUpperCase() != "A")
isValid = false;
else
{
pkg = inPkg;
isValid = true;
}
return isValid;
...
它返回true。
我錯過了什麼?
我也嘗試使用多個if else語句來測試A,B或C,並且我得到A的錯誤。B和C沒有得到測試,因爲我的製作異常正在被拋出。
只是添加到已有的答案,當你在java中的對象上使用==你比較對象,看看他們是否是同一個對象。 Java中的字符串文字(如「foo」或「Bar」)成爲完全成熟的Java對象。你需要使用.equals()來比較String對象的CONTENTS,而不是它們是否是同一個對象。 – Jazzepi 2013-03-23 20:11:03