Eclipse Netbeans generics

pcfreak9000

Mitglied
Hallo,

ein Freund und ich arbeiten zusammen an einem Projekt. Er mit Netbeans, ich mit Eclipse.
Bei einer Methode kommt bei ihm ein Compilerfehler und das ganze stürzt logischerweise ab, bei mir funktioniert alles fehlerfrei. Weiß jemand wieso das so ist? Wir benutzen die gleichen Java-Versionen.

Aufruf der Methode (die Fehlerstelle):
Code:
final Map<Class<?>, Object> other_classes_gameObjects = data.getMap("other_classes_gameObjects", Class.class, Object.class);

Die Methode:
Code:
public final <K, V> Map<K, V> getMap(String name, Class<? extends K> typeKey, Class<? extends V> typeValue) {
        if (name == null || typeKey == null || typeValue == null) {
            return null;
        }
        final Object object = get(name);
        if (object == null) {
            return null;
        }
        return (Map<K, V>) (Map<?, ?>) object;
    }

Der Fehler (nur in Netbeans):
Code:
error: incompatible types: cannot infer type-variable(s) K,V
        final Map<Class<?>, Object> other_classes_gameObjects = data.getMap("other_classes_gameObjects", Class.class, Object.class);
    (argument mismatch; Class<Class> cannot be converted to Class<? extends Class<?>>)
  where K,V are type-variables:
    K extends Object declared in method <K,V>getMap(String,Class<? extends K>,Class<? extends V>)
    V extends Object declared in method <K,V>getMap(String,Class<? extends K>,Class<? extends V>)
(sieht als code überichtlicher aus...)

Zur "Lösung" hab ich den Typenparameter der Class bei final Map<Class... weggelassen, dann funktioniert es bei uns beiden. Allerdings ist Eclipse davon nicht besonders begeistert...
 
Also zu deinem Fehler: Eclipse hat einen eigenen eingebauten Compiler (JDT) und funktioniert ein wenig anders. Netbeans hingegen arbeitet mit dem Standardcompiler (javac) und man sollte sich nach diesem richten.
 

Zurück
Oben