Kiểu IDE của tôi ( NetBeans ) kiểm traCollections
trong khi tôi đang nhập mã. Nhưng sau đó, tại sao tôi phải bỏ vật bị trả về Object.clone()
? Cái nào cũng được. Không có hại không hôi. Nhưng tôi vẫn không hiểu.
Là kiểm tra loại, mà không đúc, đối tượng trả lại Object.clone()
không thể? Khung tổng quát khiến tôi nghĩ rằng IDE có thể kiểm tra loại tham chiếu đối tượng ở phía bên phải của dấu " = " mà không cần truyền trong khi tôi đang gõ? Tôi không hiểu
phụ lục
Trường hợp sử dụng của tôi chỉ là tôi có một Calendar
lĩnh vực riêng , pubdate . Tôi sẽ viết:
Calendar getPubdate() {
return pubdate;
}
nhưng có một rủi ro là kẻ xâm lược có thể sửa đổi tuổi dậy thì của tôi , vì vậy tôi đã trả lại một bản sao:
Calendar getPubdate() {
return (Calendar) pubdate.clone();
}
Sau đó, tôi tự hỏi tại sao tôi cần phải đúc pubdate.clone()
. Chữ ký phương thức có loại ngay tại đó. NetBeans sẽ có thể tìm ra cái đó. Và NetBeans dường như đang làm điều gì đó tương tự Collections
.
MyObject
từ clone()
hơn Object
- điều này loại bỏ toàn bộ vấn đề này. Chúng tôi khuyên bạn không bao giờ nên sử dụng clone()
(Mục Java hiệu quả số 11).
this.clone()
về đối tượng lập trình viên, đặc biệt là vào đêm Wed sau khi Tue phát hành. Xin lỗi nhưng tôi phải viết nhận xét này..Tại sao IDE thông minh không thể sửa tất cả các lỗi cho chúng tôi LOL