Cast ohne Warnung bei Generics

A.T.

Bekanntes Mitglied
Hallo zusammen,

ich habe eine Frage zum Gasten im zusammen hang mit Generics.

Meine Methode erhält eine Map<String, Object> in dieser Map befinden sich verschiedene Objekte. Z.B. Strings, ArrayList<String>, ArrayList<Color> usw.
Um die ArrayLists geht es. Wenn ich diese jetzt aus der Map heraushole und einer ArrayList vom entsprechenden Typ zuweisen möchte, bekomme ich immer eine Warnung. Wie caste ich an der Stelle richtig?

Beispiel:
Java:
public void methode(Map<String, Object> data){

  ArrayList arryList;
  if (data.containsKey("keyX")
				&& data.get("keyX") instanceof ArrayList) {
    arrayList = (ArrayList<String>)data.get("keyX")
  }
  ...
}
In Zeile 6 erhalte ich jetzt immer die Warnung hier: Type safety: The cast from Object to ArrayList<String> is actually checking against the erased type ArrayList

Eine Überprüfung mit instanceof gegen ArrayList<String> geht aber nicht.

Wie löst man dieses Problem am besten?

Danke schon mal!

Gruß
A.T.
 
S

SlaterB

Gast
deine Liste
> ArrayList arryList;
ist nicht generisch typisiert, wozu dann überhaupt generisch casten?

grundsätzlich ist dies aber nicht möglich, man kann nur nur auf die Klasse casten,
generische Parameter beim Cast haben höchstens kommentierende Wirkung, sonst ganz weglassen

Java:
public class Test {
    public static void main(String[] args) {
        Object o = null;

        @SuppressWarnings("unchecked")
        List<String> l = (List)o;

        l = (List)o;
    }
}
nur noch @SuppressWarnings("unchecked") hilft gegen die Warning,
bei Deklaration einer neuen Variablen kann man es in die Zeile davor schreiben, ansonsten muss es an die Methode oder an die Klasse ran und gilt dann für einen ganzen Bereich, etwas gefährlich
 
Zuletzt bearbeitet von einem Moderator:

A.T.

Bekanntes Mitglied
Danke für die sehr schnelle Antwort!

Du hast natürlich Recht, im meinem Beispiel macht das nicht viel Sinn.
Statt ArrayList arryList; sollte da natürlich ArrayList<String> arryList; stehen. Habe den Code nur eben schnell ins Forum geschrieben.

Schade, habe gehofft es würde eine elegante Lösung geben. Dann weiß ich jetzt aber bescheid.
Noch mal vielen Dank!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Ohne Cast auf Methode zugreifen? Java Basics - Anfänger-Themen 4
T Datentypen byte -Division..mal gehts mit cast mal ohne Java Basics - Anfänger-Themen 5
B Byte übergeben ohne cast? Java Basics - Anfänger-Themen 12
H Cast von Float nach String klappt nicht Java Basics - Anfänger-Themen 12
berserkerdq2 Habe ein Spiel entwickelt, dass immer in der 4 Runde einen cast-Fehler erhält Java Basics - Anfänger-Themen 3
TimoN11 Frage zu Java-Vererbung (Cast) Java Basics - Anfänger-Themen 5
O Cast Java Basics - Anfänger-Themen 16
R Cast java.awt.Graphics Java Basics - Anfänger-Themen 7
N Simpler cast? Java Basics - Anfänger-Themen 9
D Java Eclipse cannot be cast to java.awt.event.ItemListener Java Basics - Anfänger-Themen 3
O Kleine Frage zu cast Java Basics - Anfänger-Themen 3
J Datentypen Cast von int zu char führ zu 'Sonderzeichen' Java Basics - Anfänger-Themen 2
K Cast bei equals Java Basics - Anfänger-Themen 2
N Vererbung Verschiedene Subclasses nach cast zur Superclass unterscheiden Java Basics - Anfänger-Themen 9
N Cast eines Objektes in eine Hashmap Java Basics - Anfänger-Themen 13
K Date cannot be cast to java.lang.Integer Java Basics - Anfänger-Themen 4
R Variablen Möglich?: Cast einer Referenzvariable auf den Typ seines Objektes Java Basics - Anfänger-Themen 19
S Datentypen Reflection Cast anhand eines Strings? Java Basics - Anfänger-Themen 7
M ListIterator + Cast Java Basics - Anfänger-Themen 12
D Wie "unchecked cast" hier vermeiden? Java Basics - Anfänger-Themen 2
M Cast nach int Java Basics - Anfänger-Themen 8
M object cast auf double Java Basics - Anfänger-Themen 2
I double (cast) rundungsproblem Java Basics - Anfänger-Themen 8
M Datentypen java.util.Arrays$ArrayList cannot be cast to [Ljava.lang.String; Java Basics - Anfänger-Themen 11
L Type/Cast Problem Java Basics - Anfänger-Themen 6
E Klassen ClassCastException bei gleichnamigem: paket.klasse cannot be cast to paket.klasse Java Basics - Anfänger-Themen 10
M Collections Cast bei ArrayList (List) Java Basics - Anfänger-Themen 2
T Datentypen default ist int, cast zu byte nötig... Java Basics - Anfänger-Themen 2
C Generics und Cast Java Basics - Anfänger-Themen 5
M Polymorphie Cast:Verständnis und Ausführung Java Basics - Anfänger-Themen 10
E Datentypen type cast problem (int, byte,) Java Basics - Anfänger-Themen 5
J cast zu int immer 0.. Java Basics - Anfänger-Themen 6
I java.lang.String cannot be cast to OBJEKT Java Basics - Anfänger-Themen 8
A Object -> String mit valueOf, toString oder cast ? Java Basics - Anfänger-Themen 6
M Cast vermeiden Java Basics - Anfänger-Themen 11
M Generics - "Unchecked cast"-Warnung wegbekommen Java Basics - Anfänger-Themen 4
B Exception cast to CORBA.Object Java Basics - Anfänger-Themen 2
K Cast-Operator Java Basics - Anfänger-Themen 3
Guybrush Threepwood Inhalt eines Strings für cast verwenden Java Basics - Anfänger-Themen 6
A Seltsame Class Cast Exception Java Basics - Anfänger-Themen 3
V Cast-Operator Java Basics - Anfänger-Themen 2
kulturfenster Cast Probleme Java Basics - Anfänger-Themen 2
V Frage zu final und Class bzw. Class.cast Java Basics - Anfänger-Themen 5
F paket.Klasse cannot be cast to paket.Klasse Java Basics - Anfänger-Themen 6
J Cast-Problem Java Basics - Anfänger-Themen 7
D Class Cast Exception Java Basics - Anfänger-Themen 5
R variabler cast Java Basics - Anfänger-Themen 5
G cast von Char nach int Java Basics - Anfänger-Themen 3
zilti Cast Exception bei JTable Java Basics - Anfänger-Themen 15
S "Unchecked Cast" Warnung Java Basics - Anfänger-Themen 3
G cast von int To Integer? Java Basics - Anfänger-Themen 3
M Double -> Int Cast funktioniert nicht. Java Basics - Anfänger-Themen 5
vogella Cast from Collection.toArray to String[] Java Basics - Anfänger-Themen 2
B Cast explizit verbieten Java Basics - Anfänger-Themen 10
E Cast von Object zu int (Array) Java Basics - Anfänger-Themen 19
W Java Cast bei Vectoren Java Basics - Anfänger-Themen 10
A Cast Generics Java Basics - Anfänger-Themen 6
M Class Cast Exception Java Basics - Anfänger-Themen 7
J Cast zwischen zwei Unterklassen der selben Oberklasse. Java Basics - Anfänger-Themen 7
J Delay erzeugen, ohne Programm zu blockieren Java Basics - Anfänger-Themen 7
P Main Methode scheint Constructor aufzurufen, ohne dass es so gecoded ist Java Basics - Anfänger-Themen 2
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
V JSON-Objs aus JSON-Obj filtern und löschen (Manipulation ohne Kenntnis der vollst. Struktur) Java Basics - Anfänger-Themen 12
O HashTable kann ohne Performance-Verlust in Multithreaded-Anwendungen eingesetzt werden. Java Basics - Anfänger-Themen 6
T Mehrere if bedingungen ohne & Java Basics - Anfänger-Themen 2
M methode aufrufen ohne parameter Java Basics - Anfänger-Themen 1
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
G Programm läuft durch, ohne Eingabe aus dem Chat abzuwarten Java Basics - Anfänger-Themen 4
Mugetsu35 ArrayList Update ohne Index Java Basics - Anfänger-Themen 6
P 2n Potenzieren ohne Math.pow oder pow Java Basics - Anfänger-Themen 8
M 2d array ohne längen anlegen Java Basics - Anfänger-Themen 4
Zentriks Hilfe zu Sieb des Eratosthenes ohne boolean Java Basics - Anfänger-Themen 5
W GUI - JButton ohne Funktion? Java Basics - Anfänger-Themen 24
X Enum Abfrage ohne if, for, while oder switch Java Basics - Anfänger-Themen 21
R Buttons ohne Funktion Java Basics - Anfänger-Themen 2
JavaBeginner22 TextArea, ohne Zeilenumbruch? Java Basics - Anfänger-Themen 4
frager2345 Programm erstellen ohne Autoboxing und Unboxing Java Basics - Anfänger-Themen 13
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
S Was macht ++ ohne Schleife? Java Basics - Anfänger-Themen 4
berserkerdq2 An selbst ersteller txt Datei immer Text dranhängen, ohne den vorherign Text zu löschen Java Basics - Anfänger-Themen 8
U Methode wird genutzt, ohne dass ich die aufrufe? Java Basics - Anfänger-Themen 4
B Jar Dateien ohne IDE verwenden? Java Basics - Anfänger-Themen 1
M Wie verknüpfe ich eine Bedingung mit einer Methode ohne if-Verzweigung & Bedingungsoperator? Java Basics - Anfänger-Themen 2
M Konstruktor ohne Übergabe eines Wertes Java Basics - Anfänger-Themen 7
S Chars vergleichen ohne Betrachtung der Groß und Kleinschreibung Java Basics - Anfänger-Themen 7
javapingu Variablenwerte ändern ohne return Statement? Java Basics - Anfänger-Themen 7
R Frage zu Methoden (Rückgabewert u. ohne.) Java Basics - Anfänger-Themen 2
E Meine JCombobox werte an ohne selectiert zu haben Java Basics - Anfänger-Themen 6
T Eigene Exception - ohne werfen abfangen Java Basics - Anfänger-Themen 2
M for schleife ohne geschweifte Klammer Java Basics - Anfänger-Themen 15
KogoroMori21 Variable im Parameter und Ohne Java Basics - Anfänger-Themen 5
alice98 Erste Schritte Liste erstellen ohne vorgefertigte Klassen Java Basics - Anfänger-Themen 1
L Zufälligen Zahlencode, ohne mehrfacher Verwendung einer Ziffer Java Basics - Anfänger-Themen 15
Sinan Arrays auflisten ohne Wiederholung Java Basics - Anfänger-Themen 28
A Löschen von Leerzeichen in einem char array ohne methoden Java Basics - Anfänger-Themen 6
T Variable in for Schleife ansprechen ohne Array ? Java Basics - Anfänger-Themen 25
J Programm beenden ohne System.exit() oder Runtime.exit() Java Basics - Anfänger-Themen 5
S Teilen ohne Rest Java Basics - Anfänger-Themen 15
Tino1993 Ellipse über draw Funktion ohne spur wandern lassen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben