2017-05-19 10 views
-2

javaクラスアダプタがあります。これはエラーです(Groceries b:getData())。オブジェクトをGroceries.javaに変換できないため、 B:Groceries.javaエラー:互換性のない型オブジェクトを(Javaクラス)に変換できません

からのgetData())私はb.getProduct(メソッドを呼び出すことはできません)getSn()DataAdapter.java

public Groceries getBelBySN(String sn) { 
    Groceries pp = null; 
    for (Groceries b : getData()) { 
     if (b.getProduct().getSn().equals(sn)) { 
      pp = b; 
      break; 
     } 
    } 
    return pp; 
} 

public void updateTotal() { 
    long jumlah = 0; 
    for (Groceries b : getData()) { 
     jumlah = jumlah + (b.getProduct().getHarga() * b.getQuantity()); 
    } 
    total = jumlah; 
} 

は、これは私は、アダプタを呼び出すことGroceries.javaです

public class Groceries { 
protected Product product; 
protected int quantity; 

public Groceries(Product product, int quantity) { 
    this.product = product; 
    this.quantity = quantity; 
} 

public void setProduct(Product product) { 
    this.product = product; 
} 

public Product getProduct() { 
    return product; 
} 

public void setQuantity(int quantity) { 
    this.quantity = quantity; 
} 

public int getQuantity() { 
    return quantity; 
} 
+2

'getData()'は何を返しますか? 'getData()'のコードを表示できますか? –

+0

getData()はリストから – Rizal

答えて

0

getData()はGroceriesオブジェクトを返さないようです。あなたはその実装を提供してください。 JavaのすべてのオブジェクトはObject.classから継承されているため、問題なくキャストすることができます。 Object.classにはGroceries関数がありません。そのため、呼び出し時にエラーが発生します。あなたはおそらくOOPとOOPに関する良い本をまずJavaで読むべきです。

EDIT:

あなたgetData()機能がどのように見えるか、私は知りませんが、それはループ作業のための高度にするには、このようなものでなければなりません:

ArrayList<Groceries> myGroceries = new ArrayList<Groceries>(); 

public ArrayList<Groceries> getData(){ 
    return myGroceries; 
} 

次に、あなたのループがすべきうまく走る。

for (Groceries b : getData()) { 
    // Do stuff 
} 
+0

ありがとうございます、今私はアダプタに追加 – Rizal

関連する問題