Ich bin neu in Generics und zu versuchen, zu verstehen, warum dieser Code kompiliert:Java Generics Codefehler
public Collection<Class<Subclass>> testFunction() {
return Collections.singleton(Subclass.class);
}
Und dieser Code nicht:
public Collection<Class<? extends SuperClass>> testFunction() {
return Collections.singleton(Subclass.class);
}
Meine SubClass wie folgt aussieht:
beide sollten gut kompilieren (Java 8), die angegebene Frage bezieht sich nicht auf dieses Problem – Andrew
@Eran es könnte von der Java-Version abhängen, die Sie verwenden, dh wenn der Typ Inferenz korrekt funktioniert Collections. Singleton (Integer.class); 'sollte eine' Collection> 'aber wenn nicht (und ältere Compiler hatten hier Probleme), erhalten Sie einen Typkonflikt. –
Thomas
@Eran Auf eclipse-neon, mit jdk 8 gibt es die folgende Fehlermeldung: Typenkonflikt: kann nicht konvertiert von Set> in Sammlung > –
Vaibhav