2017-05-19 5 views
-2

Ich habe Java - Klasse - Adapter, und das ist ein Fehler (Lebensmittel b: getData()), weil Objekt nicht zu Groceries.java konvertiert werden kann, wenn ich (Object b: getData()) i kann kein Verfahren b.getProduct() aufrufen getSn() von Groceries.javaFehler: inkompatible Art Objekt kann nicht konvertiert werden (Java - Klasse)

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

Dies ist Groceries.java, das ich auf Adapter nennen.

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

Was gibt 'getData()' zurück? Kannst du uns den Code von 'getData()' zeigen? –

+0

getData() ist von der Liste – Rizal

Antwort

0

Es scheint, als ob getData() kein Lebensmittelobjekt zurückgibt. Könnten Sie bitte die Implementierung dafür bereitstellen? Jedes Objekt in Java erbt von Object.class, deshalb können Sie ohne Probleme in es umwandeln. Die Object.class hat keine Ihrer Groceries-Funktionen, deshalb erhalten Sie einen Fehler, wenn Sie sie aufrufen. Sie sollten wahrscheinlich zuerst ein gutes Buch über OOP und OOP in Java lesen.

EDIT:

Ich weiß nicht, wie Sie Ihre getData() Funktion aussieht, aber es sollte die erweiterte for-Schleife Arbeit machen so etwas wie dieses:

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

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

Dann ist Ihre Schleife sollte lauf gut.

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

Danke funktioniert jetzt, ich füge Adapter hinzu – Rizal

Verwandte Themen