Мій тип IDE ( NetBeans ) перевіряє мій Collectionsпід час введення коду. Але тоді, чому я повинен кидати повернутий об'єкт Object.clone()? Що добре. Ні шкоди, ні фолу. Але все-таки я не розумію.
Чи неможлива перевірка типу без кастингу поверненого об'єкта Object.clone()? Дженерики структура змушує мене думати IDE може перевірити тип посилань на об'єкти на правій стороні « = марки» без лиття в той час як я друкую? Я не розумію.
Додаток
Мій випадок використання полягав у тому, що я мав приватне Calendarполе, публікувати . Я збирався написати:
Calendar getPubdate() {
return pubdate;
}
але є ризик, що користувач може змінити моє оновлення , тому я повернув копію:
Calendar getPubdate() {
return (Calendar) pubdate.clone();
}
Потім я задумався, навіщо мені потрібно грати pubdate.clone(). Підпис методу має тип саме там. NetBeans повинен мати можливість це зрозуміти. І NetBeans, здавалося, робить щось подібне стосовно Collections.
MyObjectз, clone()а не Object- це видаляє всю цю проблему. Крім того, рекомендується ніколи не використовувати clone()(Ефективний елемент Java №11).
this.clone()об’єкт програміста, особливо в ніч на ср після звільнення Тю. Вибачте, але я мушу написати цей коментар. Чому не може смарт-IDE виправити всі помилки для нас LOL