hallo,
ich habe ein problem mit einem java-programm. und zwar versuche ich elemente vom typ "object" in eine reihe vom typ "java.util.vector" zu schreiben. aber irgendwie will es nicht so richtig klappen obwohl ich nicht weiß warum nicht. ich nutze als plattform eclipse. an einer stelle wir mir immer ein fehler von eclipse gemeldet. und zwar folgender:
Type safety: The method addElement(Object) belongs to the raw type Vector. References to generic type Vector<E> should be parameterized.
hier nun mal ein ausschnitt aus meinen programm, wo der fehler auftaucht:
public class WarteReihe_Vector implements Warteschlange{
public Vector reihe;
public int zahl;
//Konstruktor
public WarteReihe_Vector(int anzahl){
reihe = new Vector(anzahl);
entleeren();
}
//Entleeren der Warteschlange
public void entleeren(){
reihe.removeAllElements();
zahl = 0;
}
//Eintragen eines Elements in die Warteschlange
public void eintragen(Object element) throws VollAusnahme{
if (zahl == reihe.size()){
throw new VollAusnahme(); //es wird eine Ausnahme ausgelöst, wenn Reihe voll ist
}
zahl++;
reihe.addElement(element); //hier tritt der oben genannte Fehler auf, obwohl es eigentlich funktionieren sollte
vielleicht könnt ihr mir ja ein wenig weiterhelfen. ich wär euch echt sehr dankbar.
Laß mich raten, das neue Java 1.5.0 und Eclipse 3.1 Milestone x, oder?
Du bist da auf die neuen "generics" gestoßen, eines der besten Features des neuen Java's. Leider habe ich auch noch keine praktische Erfahrung damit gemacht, aber versuch mal folgendes (falls das Problem noch aktuell ist):
statt "public Vector reihe;" schreibst du "public Vector<Object> reihe;" und im Konstruktor "reihe = new Vector<Object>(anzahl);". Dann sollte es gehen, würde ich mir so denken.
Aber Vorsicht: mit dem noch sehr verbreiteten Java 1.4.x funktioniert das nat. nicht. Ansonsten solltest du das Programm so lassen und in Eclipse ein wenig nach der entsprechenden Option suchen, die Java 1.5.0 Sprachfeatures abzuschalten. Kann mir gut vorstellen, dass das in den Projekt-Optionen zu finden ist.