Il mio tipo IDE ( NetBeans ) controlla il mio Collections
mentre sto scrivendo il codice. Ma allora, perché devo lanciare l'oggetto restituito di Object.clone()
? Va bene Nessun danno nessun inganno. Ma ancora non capisco.
Il controllo del tipo, senza casting, Object.clone()
non è possibile per l' oggetto restituito ? Il framework generics mi fa pensare che l'IDE potrebbe controllare il tipo di riferimenti a oggetti sul lato destro del segno " = " senza eseguire il casting mentre sto scrivendo? Non capisco
addendum Il
mio caso d'uso era solo che avevo un Calendar
campo privato , pubdate . Stavo per scrivere:
Calendar getPubdate() {
return pubdate;
}
ma c'è il rischio che l'invoker possa modificare il mio pubdate , quindi ho restituito una copia:
Calendar getPubdate() {
return (Calendar) pubdate.clone();
}
Quindi, mi chiedevo perché dovevo fare il cast pubdate.clone()
. La firma del metodo ha il tipo proprio lì. NetBeans dovrebbe essere in grado di capirlo. E NetBeans sembrava fare qualcosa di simile riguardo a Collections
.
MyObject
da clone()
, piuttosto che Object
- questo rimuove l'intero problema. Si consiglia inoltre di non utilizzare mai clone()
(articolo Java effettivo n. 11).
this.clone()
sull'oggetto programmatore, specialmente la notte di mercoledì dopo l'uscita di Tue. Scusa ma devo scrivere questo commento ... Perché l'IDE intelligente non può risolvere tutti i bug per noi LOL