readObject ha tipo di ritorno Object. Il compilatore non può provare, a priori, che l'ArrayList è di oggetti VoceProdotto, quindi il warning è lì per questo motivo.... per il programmatore, visto che solo lui può sapere che lo stream contiene davvero oggetti VoceProdotto.
codice:@SuppressWarnings("unchecked") ArrayList<VoceProdotto> l = (ArrayList<VoceProdotto>)s.readObject();