Mi tipo IDE ( NetBeans ) comprueba mi Collections
mientras escribo código. Pero entonces, ¿por qué tengo que lanzar el objeto devuelto Object.clone()
? Lo cual está bien. Sin daño no hay falta. Pero aún así, no entiendo.
¿Es posible la verificación de tipos, sin conversión, del objeto devuelto Object.clone()
? El marco genérico me hace pensar que el IDE podría verificar el tipo de referencias a objetos en el lado derecho de la marca " = " sin emitir mientras escribo. No lo entiendo
Anexo
Mi caso de uso fue solo que tenía un Calendar
campo privado , pubdate . Yo iba a escribir:
Calendar getPubdate() {
return pubdate;
}
pero existe el riesgo de que el invocador pueda modificar mi publicación , por lo que devolví una copia:
Calendar getPubdate() {
return (Calendar) pubdate.clone();
}
Entonces, me pregunté por qué necesitaba lanzar pubdate.clone()
. La firma del método tiene el tipo allí mismo. NetBeans debería ser capaz de resolverlo. Y NetBeans parecía estar haciendo algo similar con respecto a Collections
.
MyObject
desde, en clone()
lugar de Object
, esto elimina todo este problema. Además, se recomienda no usar nunca clone()
(Artículo efectivo de Java # 11).
this.clone()
en el objeto del programador, especialmente en la noche del miércoles después del lanzamiento de Tue. Lo siento, pero tengo que escribir este comentario ... ¿Por qué el IDE inteligente no nos arregla todos los errores? LOL