2016-05-01 32 views
0

if文の中でメソッドを呼び出そうとしていますが、次のエラーが発生します。互換性のない型:java.lang.Stringをbooleanに変換できません

互換性のない型:java.lang.Stringでは、あなたが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

ゲッターメソッドがパラメータを受け取ることはありません。 getBarcodeメソッドはItemオブジェクトの実際のバーコードを返します。あなたがコンストラクタメソッドに送るもの。 上記の質問に対するあなたの答えがイエスである場合には、getBarcodeメソッドは、引数を必要としないし、修正する必要がある場合、例:

public String getBarcode() 
{ 
return barcode; 
} 

そして

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

は非常に多くのホルヘありがとうございます! –

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

あなたが近くに見える場合iftrueまたはfalseをチェックする側にboolean値を持っている必要があります。あなたのメソッドはStringを返します。

0

条件付きで操作するにはブール値が必要です。したがって、Stringを返すメソッドを挿入することはできません。 "00001"を別のStringと比較して条件に合致するようにする必要があります。

この問題を解決するには、文字列を比較する比較が必要です。 そう...あなたはパラメータのバーコードやプライベート変数、バーコードを返すようにしたい場合にも指定することthis.barcodeを使用する必要があります

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

関連する問題