Was ist der Raw Type in Java Generics und warum sollte man ihn vermeiden?
Hallo zusammen! Ich bin ein Java-Anfänger, lerne Generics und bin auf das seltsame Konzept "Raw Type" gestoßen. Ich verstehe irgendwie, dass es mit Generics zusammenhängt, aber ich erfasse den Kern nicht ganz.\n\nAngenommen, ich habe diesen Code:\n\n```java\nList list = new ArrayList(); // ist das ein Raw Type?\nlist.add("String");\nlist.add(123);\n```\n\nDer Compiler gibt eine Warnung aus, aber der Code funktioniert. Ich kann alles in die Liste einfügen. Aber wenn ich einen parametrisierten Typ verwende:\n\n```java\nList list2 = new ArrayList<>();\nlist2.add("String");\n// list2.add(123); // Compiler-Fehler\n```\n\nDann beschwert sich der Compiler. Was ist der Unterschied? Warum gilt Raw Type als schlechte Praxis? Der Code funktioniert doch trotzdem. Ich habe gehört, dass Raw Types aus Gründen der Rückwärtskompatibilität existieren, aber warum sollte man sie in neuem Code verwenden?
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen