Class<CAP#1> statt Class<...>

dowhile

Mitglied
Hallo,

ich habe folgenden Quelltext:

Java:
for (Map.Entry<String, AbstractLayer> entry : layers.entrySet()) {
    Class<AbstractLayer> c = entry.getValue().getClass();
}

Dabei wird folgende Fehlermeldung erzeugt:

Code:
incompatible types
  required: Class<AbstractLayer>
  found: Class<CAP#1>
  where CAP#1 is a fresh type-variable:
    CAP#1 extends AbstractLayer from capture of ? extends AbstractLayer

Ich verstehe nicht so ganz, wieso ich das nicht machen darf. entry.getValue() liefert ein Objekt von AbstractLayer. Wieso ist dessen Klassenobjekt dann kein Class<AbstractLayer>?

Mit freundlichen Grüßen

(Entschuldigt bitte, dass ich das in diesem Unterforum gepostet habe; es handelt sich hierbei wohl eher um ein Anfängerproblem - vielleicht kann es ja verschoben werden ...)
 
Zuletzt bearbeitet:
T

trääät

Gast
Object.getClass() liefert (wenn nicht überschrieben) ein objekt vom type "Class<?>" ...
wenn man also "getClass()" called MUSS man "Class<?>" verwenden ...
 

xehpuk

Top Contributor
(wenn nicht überschrieben)
Dann überschreib mal eine finale Methode.

wenn man also "getClass()" called MUSS man "Class<?>" verwenden
Falsch.

Korrektur:
Java:
for (Map.Entry<String, AbstractLayer> entry : layers.entrySet()) {
    Class<? extends AbstractLayer> c = entry.getValue().getClass();
}

Steht übrigens auch in der Doku: [JAPI]Object#getClass()[/JAPI] :rtfm:
 
T

tröööt

Gast
getClass() is native final ? naja who cares ... hab den source auch nich 100% im kopf ... (wobei man hier mal das standard-doclet anpassen könnte das auch "native" und "final" in der doc zu lesen sind)

und ob man nun <?> oder <? extends Object> schreiben muss ändert nichts daran das <Object> nicht geht ...
 

Landei

Top Contributor
getClass() is native final ? naja who cares ...
Also ich bin schon daran interessiert, dass mir nicht jemand eine falsche Klasse unterjubuln kann, in dem er die Methode überschreibt.

hab den source auch nich 100% im kopf ... (wobei man hier mal das standard-doclet anpassen könnte das auch "native" und "final" in der doc zu lesen sind)
Es ist ja nett, helfen zu wollen, aber eine falsche Antwart ist nun mal schlechter als gar keine.

und ob man nun <?> oder <? extends Object> schreiben muss ändert nichts daran das <Object> nicht geht ...

Es geht aber [c]<? extends KonkreteKlasse>[/c], was lesende Aufrufe an [c]KonkreteKlasse[/c] zulässt. Siehe dazu Kovarianz und Kontravarianz ? Wikipedia
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Textdatei statt von Dateisystem aus .jar lesen Allgemeine Java-Themen 3
ReinerCoder Case statt if else Abfragen?! Allgemeine Java-Themen 8
M Bei String.format ein Komma statt einem Punkt ausgeben lassen Allgemeine Java-Themen 1
A was kann ich nehmen als statt IsHitBy? Allgemeine Java-Themen 3
das_leon Komma statt Punkt Allgemeine Java-Themen 10
F Java moved Files statt sie zu kopieren Allgemeine Java-Themen 12
M Generics (bounded wildcards statt Interface Bezeichnern) -- Sinn oder Unsinn? Allgemeine Java-Themen 2
P Datentypen float mit komma statt punkt möglich? Allgemeine Java-Themen 6
D Shortcut statt Datei einlesen Allgemeine Java-Themen 2
K Collection.contains()/retainAll() mit Referenzgleichheit statt equals()? Allgemeine Java-Themen 2
H SwingWorker statt Thread für einen Server Allgemeine Java-Themen 2
R Dateiarbeit: In Datei weiterschreiben statt überschreiben Allgemeine Java-Themen 5
P SFTP mit ppk key statt openssh key Allgemeine Java-Themen 4
Meldanor For-Schleifen - byte statt int? Allgemeine Java-Themen 11
S indize statt split() Allgemeine Java-Themen 10
P Wieso HashMap-Zugriff mit Object, statt mit MyObject? Allgemeine Java-Themen 12
G Was nutzen statt Mehrfachvererbung? Allgemeine Java-Themen 7
G Arraylist statt List - Sehr schlimm? Allgemeine Java-Themen 8
N Hilfe: Bekomme statt '>' '&gt;' . Allgemeine Java-Themen 11
H Referenzen statt Objekte für große Speicherstrukturen Allgemeine Java-Themen 19
L Zwei Hashtables statt einer? Allgemeine Java-Themen 6
E Statt HashSet die TreeSet verwenden Allgemeine Java-Themen 4
R Window statt Frame Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben