2012-07-24 10 views

risposta

0

Entrambi i metodi di aggiunta e rimozione sono ereditati dall'interfaccia Raccolta. Il metodo remove non è stato retrofit con un argomento generico presumibilmente perché non avrebbe importanza. La rimozione non influisce sulla sicurezza del tipo della raccolta e quando stai cambiando una delle API più popolari sul pianeta, un minor numero di modifiche sono migliori. Vedrai che il metodo contiene ha subito lo stesso destino.

+0

"perché non importa" È * importa. Oggetti di diverso tipo possono essere uguali. – newacct

+0

Non importa perché gli oggetti di tipi diversi non possono mai essere aggiunti alla raccolta parametrizzata, pertanto, richiedendo che il metodo di rimozione sia parametrizzato, non si ottiene nulla. –

+0

Non ho detto nulla riguardo alle cose aggiunte alla collezione. È solo che la definizione del metodo 'remove()' richiede che rimuova roba che è uguale alla cosa passata – newacct

0

Poiché il chiamante può chiamare remove o contains utilizzando qualsiasi tipo di oggetto e il codice verrà comunque eseguito correttamente. Il contratto di compilazione che il parametro di tipo delle raccolte utilizza garantisce * che qualsiasi cosa nella raccolta sarà del tipo specificato. Non gli importa se lo chiedi se contiene un oggetto di un tipo diverso.

* Nitpicker's Corner, so che i generici Java non sono davvero una garanzia. Più di zucchero sintattico suppongo.

1

Questo perché rimozione verifiche di funzionamento per l'uguaglianza utilizzando equals() metodo e equals() metodo richiede in un oggetto come parametro non generico.