Meu tipo de IDE ( NetBeans ) verifica meu Collectionscódigo enquanto estou digitando. Mas então, por que tenho que lançar o objeto retornado Object.clone()? O que é bom. Nenhum dano, nenhuma falta. Mas ainda assim, eu não entendo.
A verificação de tipo, sem conversão, o objeto retornado Object.clone()não é possível? A estrutura de genéricos me faz pensar que o IDE poderia verificar o tipo de referência de objeto no lado direito da marca " = " sem transmitir enquanto estou digitando? Eu não entendo.
adendo
Meu caso de uso foi justamente porque eu tinha um Calendarcampo privado , pubdate . Eu ia escrever:
Calendar getPubdate() {
return pubdate;
}
mas existe o risco de o invocador poder modificar meu pubdate , então retornei uma cópia:
Calendar getPubdate() {
return (Calendar) pubdate.clone();
}
Então, eu me perguntava por que eu precisava lançar pubdate.clone(). A assinatura do método tem o tipo ali. O NetBeans deve ser capaz de descobrir isso. E o NetBeans parecia estar fazendo algo semelhante em relação a Collections.
MyObjectem clone()vez de Object- isso remove todo esse problema. Além disso, é recomendável nunca usar clone()(Item efetivo 11 do Java).
this.clone()no objeto programador, especialmente na noite de Wed após o lançamento de Tue. Desculpe, mas eu tenho que escrever este comment..Why pode IDE não é inteligente apenas corrige todos os erros para nós LOL