Hi,
ich habe mal wieder ein kleines Problem
Und zwar habe ich einen Vector der verschiedene Objekte von Waffen beinhaltet. Alle Waffen erweitern die Klasse Weapon, also z.B.:
Jetzt will ich eine methode haben, der ich die Klasse übergebe, also z.B.
und die soll mir dann das Objekt, dass ein Objekt der Klasse PortalGun ist, zurückgeben.
Jetzt hab ich mir bisher sowas zusammengeschrieben:
Allerdings meldet mir Eclipse da in der Zeile if(w instanceof c) folgende Fehlermeldung:
Incompatible conditional operand types Weapon and c
Ich verstehe aber nicht genau warum. Meiner Meinung nach sollte das so funktionieren, aber scheinbar ja nicht.
Was mache ich falsch?
Dennis
ich habe mal wieder ein kleines Problem
Und zwar habe ich einen Vector der verschiedene Objekte von Waffen beinhaltet. Alle Waffen erweitern die Klasse Weapon, also z.B.:
Code:
class PortalGun extends Weapon {...}
Jetzt will ich eine methode haben, der ich die Klasse übergebe, also z.B.
Code:
getWeapon(PortalGun.class);
Jetzt hab ich mir bisher sowas zusammengeschrieben:
Java:
public Weapon getWeapon(Class<? extends Weapon> c) {
for(Weapon w:weapons) {
if(w instanceof c)
return w;
}
return null;
}
Allerdings meldet mir Eclipse da in der Zeile if(w instanceof c) folgende Fehlermeldung:
Incompatible conditional operand types Weapon and c
Ich verstehe aber nicht genau warum. Meiner Meinung nach sollte das so funktionieren, aber scheinbar ja nicht.
Was mache ich falsch?
Dennis