Vorab: Ich benutze Java1.5 mit Eclipse3.1M3.
Folgende Methode wird ohne Warnung/Fehler akzeptiert und übersetzt:
Versuche ich nun, diese Methode aufzurufen, etwa mit folgendem Code...
...liefert mir Eclipse noch vor dem Übersetzen folgende Fehlermeldung:
Severity Description Resource In Folder Location Creation Time
2 The method findInDesiredClasses(Collection<Class<? extends T>>, Class<?>) in the type Factory is not applicable for the arguments (HashSet<Class<? extends Number>>, Class<?>) Factory.java Source/pathToClass line 162 21. November 2004 14:53:41
Anmerkung: Der Aufruf der Methode geschieht ebenfalls in einer statischen Methode.
Nun meine Frage: Ist dies ein Eclipse-intrinsisches Problem (mein Gefühl sagt mir nein, da Fehlermeldungen aufgrund noch nicht implementierter Java1.5-Features für gewöhnlich anders aussehen), oder liegt bei mir ein Denkfehler bzgl. Generics vor?
Folgende Methode wird ohne Warnung/Fehler akzeptiert und übersetzt:
Code:
private static <T> Class< ? extends T> findInDesiredClasses(
Collection<Class< ? extends T>> collection,
Class< ? > classInQuestion) {
for (Class< ? extends T> element : collection)
if (classInQuestion.isAssignableFrom(element))
return element;
return null;
}
Versuche ich nun, diese Methode aufzurufen, etwa mit folgendem Code...
Code:
Class< ? > forNameClass = Class.forName(className);
HashSet<Class< ? extends Number>> desiredClasses = new HashSet<Class< ? extends Number>>();
desiredClasses.add(Integer.class);
desiredClasses.add(Double.class);
Class<? extends Number> clazz = findInDesiredClasses(desiredClasses, forNameClass);
...liefert mir Eclipse noch vor dem Übersetzen folgende Fehlermeldung:
Severity Description Resource In Folder Location Creation Time
2 The method findInDesiredClasses(Collection<Class<? extends T>>, Class<?>) in the type Factory is not applicable for the arguments (HashSet<Class<? extends Number>>, Class<?>) Factory.java Source/pathToClass line 162 21. November 2004 14:53:41
Anmerkung: Der Aufruf der Methode geschieht ebenfalls in einer statischen Methode.
Nun meine Frage: Ist dies ein Eclipse-intrinsisches Problem (mein Gefühl sagt mir nein, da Fehlermeldungen aufgrund noch nicht implementierter Java1.5-Features für gewöhnlich anders aussehen), oder liegt bei mir ein Denkfehler bzgl. Generics vor?