2016-08-17 4 views
0

Ich habe die folgenden Klasse-Dateien unterin Java

Database Klasse

public class DBClass { 

private static Map<Long, Fish> fishs= new HashMap<>(); 

public static Map<Long, Fish> getFishs(){ 
    return fishs; 
    } 
} 

Fisch Klasse

public class Fish{ 

private long id; 
private String fishName; 
private String descr; //description 
private double weight; 
private String fishLoc; //location 

public Fish(){ 

} 

public Fish(long id,String fishName,String descr,double weight,String fishLoc){ 
    this.id = id; 
    this.fishName= fishName; 
    this.descr = descr; 
    this.weight= weight; 
    this.fishLoc = fishLoc; 
} 

public long getId() { 
    return id; 
} 
public void setId(long id) { 
    this.id = id; 
} 

public String getFishName() { 
    return fishName; 
} 

public void setFishName(String fishName) { 
    this.fishName= fishName; 
} 

public String getDescr() { 
    return descr; 
} 

public void setDescr(String descr) { 
    this.descr = descr; 
} 

public double getWeight() { 
    return weight; 
} 

public void setWeight(double weight) { 
    this.weight = weight ; 
} 

public String getFishLoc() { 
    return fishLoc; 
} 

public void setFishLoc(String fishLoc) { 
    this.fishLoc = fishLoc; 
} 

} 

FishServ Klasse

public class FishServ { 

private Map<Long, Fish> fishDB = DatabaseClass.getFishs(); 

public FishServ(){ 

    fishDB.put(1L,new Fish(1,"Starfish","Shape like a star",5.25,"Atlantic Ocean")); 
    fishDB.put(2L,new Fish(2,"Salmon","Looks like dinner",3.25,"Pacific Ocean")); 
    fishDB.put(3L,new Fish(3,"Sardines","Plenty to go around",0.05,"Rainfall")); 
} 

public List<Fish> getAllFishs(){ 
    return new ArrayList<Fish>(fishDB.values()); 
} 
} 

DatabaseTest Klasse (nicht funktioniert)

public class DBTest{ 
private static Map<Long, Fish> fishDB = DatabaseClass.getFishs(); 

public static void main(String[] args){ 
    Iterator entries = fishDB.entrySet().iterator(); 
    while (entries.hasNext()) { 
     Entry thisEntry = (Entry) entries.next(); 
     Object key = thisEntry.getKey(); 
     Object value = thisEntry.getValue(); 
    } 

    System.out.println("FAILED BIG TIME"); 
} 
} 

Es gab keinen Ausgang und keinen Fehler, Ich weiß nicht, wie durch diese Datenbank iterieren Karte, versuchte ich bei DatabaseTest, aber es hat nicht geklappt.

Was ich tun möchte ist, durchlaufen die Datenbank-ID und rufen Sie das Wertobjekt, dann trennen Sie das Wertobjekt in z. fishName, Beschreibung usw. und weisen Sie ihnen jede Variable für die DatabaseTest-Klasse zu.

+2

Sie kennen den Plural von 'Fisch' ist' Fisch' ;) – Kayaman

+0

Müssen Sie Fische in getFishs zurückbringen? –

+0

Ich bin keine fischige Person sorry :) – nonope

Antwort

1

In Ihrem Test füllen Sie nie die Datenbankkarte mit irgendetwas. Wenn es leer ist, wird Ihre Schleife nicht ausgeführt.

Wenn Sie tatsächlich Ihre FishServ Klasse verwenden, dann könnten Sie bekommen nur die Liste, die Sie in getAllFishs() und iterieren zurückkehren, dass etwa so:

FishServ fishServ = new FishServ(); 
List<Fish> fishList = fishServ.getAllFishs(); 
for (Fish fish in fishList) { 
    // Process fish and get contents, description, etc. 
}