2016-05-01 141 views
0

我想調用一個if語句中的方法,但我不斷收到以下錯誤。不兼容的類型:java.lang.String不能轉換爲布爾型

不兼容的類型:java.lang.String中不能轉換爲boolean

當您運行GetName方法應該檢查用戶輸入的條形碼,如果它匹配,它會返回一個字符串。

這是我正在做的方法調用的類和方法。

public class ItemTable 

    public String getName (Item x) 
    { 
    String name = null; 

    if (x.getBarcode ("00001")) 
     name = "Bread"; 

    return name; 
    } 

這是我從中調用的方法/類。

public class Item 

private String barcode; 

public Item (String pBarcode) 
{ 
    barcode = pBarcode; 
} 

public String getBarcode (String barcode) 
{ 
    return barcode; 
} 

回答

0

我從來沒有見過接收參數的getter方法。 getBarcode方法應該返回Item對象的實際條形碼,對吧?你發送給構造方法的那個。 如果你的回答上述問題是肯定的,那麼getBarcode方法不需要參數和是否應進行修改,例如:

public String getBarcode() 
{ 
return barcode; 
} 

而且

if(x.getBarcode().equals("00001")) 
    name = "Bread"; 
+0

非常感謝豪爾赫! –

3
if (x.getBarcode ("00001")) 

如果你看看密切if必須在一側的boolean值來檢查truefalse。你的方法在哪裏返回String

0

條件需要布爾操作。因此,插入一個返回String的方法將不起作用。您需要將「00001」與另一個字符串進行比較,以獲得有條件工作的情況。

要解決此問題,需要比較字符串的比較結果。 所以...

if(x.getBarcode("00001").equals("00001")) //equals returns a boolean if the strings are the same. 
{ 
    name = "bread"; 
} 

,如果你想返回參數中的條形碼或私有變量,條碼也應該使用this.barcode來指定。

相關問題