Ich lerne über Generika in Java und fragte mich, ob dies als schlechte Codierung betrachtet werden würde.Mehrere Arten von Objekten in Java-Containern
Wenn ich eine ArrayList<Object>
deklariere, weiß ich, dass ich einen beliebigen Objekttyp in diese Liste einfügen kann, da alle Objekte von Object abstammen. Ich weiß auch, dass, wenn ich ArrayList.remove(index)
rufe das Objekt, das aus dem Array herausgenommen wird, vom Typ Object ist, und dass ich es auf den Typ des Objekts typisieren muss, das ich verwenden möchte.
Nun angenommen, ich habe Objekt von Dog
, Cat
und Car
. Wäre es nicht gut, alle drei Objekte in das Array zu schreiben, wenn man bedenkt, dass sie keine ähnlichen Klassen sind?
Ja. Dies kann zu Laufzeit-Classcast-Ausnahmen führen. Generics soll Kompilierungszeitprüfungen sicherstellen, so dass Ihr Code typsicher ist – Adi
Am Ende hängt es vom Kontext ab. Es gibt überhaupt nichts zu sagen, dass es an sich falsch ist, "Hunde", "Katzen" und "Autos" in derselben Liste zu speichern, und es gibt sicherlich Fälle, in denen es richtig ist; Es hängt nur davon ab, warum Sie es tun. Wenn Sie ein wenig mehr Kontext dazu angeben könnten, warum Sie dies tun möchten, würde das helfen, eine gute Antwort zu geben. – Dolda2000