Kod yazarken IDE ( NetBeans ) türü benim denetler Collections
. Ama sonra, neden geri döndürülen nesneyi dökmem gerekiyor Object.clone()
? Hangisi iyi. Zarar yok faul yok. Ama yine de anlamıyorum.
Tür denetimi, döndürülmeden döndürülen nesnenin Object.clone()
mümkün olmaması mı? Jenerik çerçevesi beni IDE kontrol edebilir düşündürüyor türü "sağ tarafındaki nesne başvurularını = Yazmaya olduğum sürece döküm olmadan" işareti? Anlamıyorum.
addendum
Kullanım durumum sadece özel bir alanım olduCalendar
, pubdate . Yazacaktım:
Calendar getPubdate() {
return pubdate;
}
ancak invoker benim pubdate değiştirmek bir risk var , bu yüzden bir kopyasını döndü:
Calendar getPubdate() {
return (Calendar) pubdate.clone();
}
Sonra neden oyuncu seçmem gerektiğini merak ettim pubdate.clone()
. Yöntem imzasının tam türü vardır. NetBeans bunu anlayabilmelidir. Ve NetBeans bakımından benzer bir şey yapıyor gibi görünüyordu Collections
.
MyObject
, clone()
yerine döndürülmesi önerilir Object
- bu, tüm sorunu ortadan kaldırır. Ayrıca asla kullanmamanız önerilir clone()
(Etkili Java Öğesi # 11).
this.clone()
programcının nesnesinde, özellikle Çar'nın serbest bırakılmasından sonraki Çar gecesinde. Üzgünüm ama bu yorumu yazmak zorunda .. Neden akıllı IDE sadece bizim için tüm hataları