S
sky_22
Gast
Hallo:
ich beschaeftige mich gerade mit Generics in java und hoffe ihr könnt mir disbezüglich helfen:
ich habe eine
meine class Tier wird nicht parametisiert
ein paar Unterklassen von Tier :
Klasse Saeugetier extends Tier
und Klasse Fisch,Vogel extends Tier
in der Klasse Gehege hab ich folgende Methode :
hier mal meine Objekte :
Nun soll es nur möglich sein Fische ins Aquarium zu packen,dachte es sollte eigentlich mit der Parametisierung der Klasse Gehege funktionieren.
Aber wenn ich aqua.ergaenzeTier(elefant) versuche bekomme ich lediglich eine typeSafty Warning ergaenzeTier(Tier) belongs to rawTyp Gehege -->should be parametisert...
Hätte eigentlich einen CompilerFehler direkt erwartet beim Verscuh ein elefant ins Aquarium zu packen...
Hat jemand eine Idee.
Wäre euch sehr dankbar
lieben Gruß
Sky
L-ectron-X hat diesen Beitrag am 29.05.2008 um 09:23 Uhr editiert.
Code-Tags eingefügt.
ich beschaeftige mich gerade mit Generics in java und hoffe ihr könnt mir disbezüglich helfen:
ich habe eine
Code:
class Gehege<T extends Tier> :
/**
* Name des Geheges
*/
private String name = "";
/**
* alle Tiere des Geheges
*/
private Vector<T> tiere = new Vector<T>();
....
Code:
class Aquarium<T extends Fisch> extends Gehege :
/**
* Fuellmenge des Aquariums
*/
private int fuellmenge = 0;
/**
* Standardkonstruktor
* der Name des Aquariums wird gesetzt
* @param name
*/
public Aquarium(String name){
super(name);
}
/**
* Aufruf Standardkonstruktor der Mutterkalsse und Setzen der speziellen
* Eigenschaft fuellmenge
*
* @param name
* @param fuellmenge
*/
public Aquarium(String name, int fuellmenge) {
super(name);
this.fuellmenge = fuellmenge;
}
....
meine class Tier wird nicht parametisiert
ein paar Unterklassen von Tier :
Klasse Saeugetier extends Tier
und Klasse Fisch,Vogel extends Tier
in der Klasse Gehege hab ich folgende Methode :
Code:
public boolean ergaenzeTier(T tier) {
if (!this.tiere.contains(tier)) {
return this.tiere.add((T) tier.clone());
}
return false;
}
}
hier mal meine Objekte :
Code:
Aquarium<Fisch> aqua = new Aquarium<Fisch>("aquarium");
Saeugetier elefant=New Tier();
Fisch fisch=new Fisch();
Nun soll es nur möglich sein Fische ins Aquarium zu packen,dachte es sollte eigentlich mit der Parametisierung der Klasse Gehege funktionieren.
Aber wenn ich aqua.ergaenzeTier(elefant) versuche bekomme ich lediglich eine typeSafty Warning ergaenzeTier(Tier) belongs to rawTyp Gehege -->should be parametisert...
Hätte eigentlich einen CompilerFehler direkt erwartet beim Verscuh ein elefant ins Aquarium zu packen...
Hat jemand eine Idee.
Wäre euch sehr dankbar
lieben Gruß
Sky
L-ectron-X hat diesen Beitrag am 29.05.2008 um 09:23 Uhr editiert.
Code-Tags eingefügt.