Print af object
Er igang med en opgave hvor jeg laver et DVD-katalog, med en 2 klasser, hvoraf den ene er kataloget og den anden er filmen.Nu er det sådan, at jeg fra DVDCatalogue skal printe en liste over alle de DVD'er der er tilføjet. I min klasse MovieDVD har jeg lavet en printfunktion, men nu skal jeg fra DVDCatalogue hente den printfunktion og printe en liste ud over alle tilføjede film.
Der hvor det går galt, er i funktionen printAllDVDs i DVDCatalogue. Nogen der ved hvorfor den fejler? Når jeg kører den i BlueJ, melder den fejl i MovieDVD dvd = (MovieDVD)iter.next();, med en ClassCastException.
Det er måske nemmere at se hvis jeg lige vedlægger koden.
DVDCatalogue, class:
----------------------------------------------------------------------
import java.util.HashMap;
import java.util.Iterator;
public class DVDCatalogue
{
private String owner;
private HashMap allDVDs;
public DVDCatalogue( String name )
{
owner = name;
allDVDs = new HashMap();
}
public void addDVD( String title, String description, String director, int duration)
{
MovieDVD dvd = new MovieDVD(title,description,director,duration);
allDVDs.put(title,dvd);
}
public Object getDVD( String title )
{
Object dvd = (MovieDVD)allDVDs.get(title);
return dvd;
}
public void printAllDVDs()
{
Iterator iter = allDVDs.keySet().iterator();
while(iter.hasNext()) {
MovieDVD dvd = (MovieDVD)iter.next();
dvd.printMovieDVD();
System.out.println();
}
}
}
Og MovieDVD, class
----------------------------------------------------------------------
public class MovieDVD
{
private String title;
private String description;
private String director;
private int duration;
public MovieDVD(String theTitle, String theDescription, String theDirector, int theDuration)
{
title = theTitle;
description = theDescription;
director = theDirector;
duration = theDuration;
}
public String getDescription()
{
return description;
}
public String getDirector()
{
return director;
}
public int getDuration()
{
return duration;
}
public void printMovieDVD()
{
System.out.print("Title: " + title + "\nDescription: " + description + "\nDirector: " + director + "\nDuration: " + duration + "min");
}
}
