Meu tipo de IDE ( NetBeans ) verifica meu Collections
có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 Calendar
campo 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
.
MyObject
em 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