Hier ist ein Teil eines Programms, das eine ArrayList von einem Server an einen Client sendet. Ich mag die Warnung über die letzte Zeile in diesem Code entfernen:Typ Sicherheit: Ungeprüfte Umwandlung von Objekt zu ArrayList
Client-Code:
Socket s;
(...)
// A server is sending a list from the other side of the link.
ois = new ObjectInputStream(s.getInputStream());
MyList = (ArrayList<MyVariable>) ois.readObject();
MyVariable eine Java-Klasse mit einigen Attributen ist. Der Server erstellt eine ArrayList und füllt sie mit MyVariable-Variablen als Elemente. Dann sendet es die vollständige Liste an den Client.
Ich möchte wissen, warum ich dort eine Warnung habe und wie man perfekt codiert, um 0 Warnungen zu haben. Wenn es möglich ist, möchte ich vermeiden, "@SuppressWarnings (" unchecked ")" "zu verwenden. ;)
Danke,
Luis
Senden Sie ein Array über den Socket statt einer Collection. '(MyVariable []) ois.readObject()' ist ein sicherer Cast. Um eine Collection in ein typisiertes Array zu konvertieren, verwenden Sie 'list.toArray (new MyVariable [0])'. Um ein Array in eine Collection zu konvertieren, verwenden Sie die Methode 'Arrays.asList'. – VGR