Hallo, ich habe folgende Struktur:
Wie kann ich überprüfen, dass der übergebene Parser zu dem Label in den Generics passt? Also dass das hier durchgeht:
Folgende Sachen aber einen Fehler wefen:
Java:
interface Label { String getName(); }
class LabelA extends Label {
String getName() { return "LabelA"; }
}
class LabelB extends Label {
String getName() { return "LabelB"; }
}
interface Parser { String getLabelName(); }
class ParserA {
String getLabelName() { return "LabelA"; }
}
class ParserB {
String getLabelName() { return "LabelB"; }
}
class X<L extends Label> {
public X(Parser parser) {
// Hier das Problem:
if(parser.getLabelName() != L.getName())
throw new ....
}
}
Wie kann ich überprüfen, dass der übergebene Parser zu dem Label in den Generics passt? Also dass das hier durchgeht:
Java:
new X<LabelA>(new ParserA());
Java:
new X<LabelB>(new ParserA());
new X<LabelA>(new ParserB());