Trong ứng dụng Java của tôi, tôi có một số bản sao-nhà xây dựng như thế nàyTruy cập vào trường riêng của đối tượng khác trong các nhà xây dựng sao chép - Thực sự là một vấn đề?
public MyClass(MyClass src) {
this.field1 = src.field1;
this.field2 = src.field2;
this.field3 = src.field3;
...
}
Bây giờ Netbeans 6.9 cảnh báo về vấn đề này và tôi tự hỏi những gì là sai với mã này?
mối quan tâm của tôi:
- Sử dụng thu khí có thể giới thiệu không mong muốn tác dụng phụ. Đối tượng mới có thể không còn được coi là bản sao của bản gốc.
- Nếu nó được khuyến nghị sử dụng getters, nó sẽ không nhất quán hơn nếu người ta sẽ sử dụng setters cho dụ mới không?
EDIT: Cảnh báo thực tế là "Truy cập của lĩnh vực tư nhân của một đối tượng" và hành động chỉ có sẵn Netbeans cung cấp sẽ bổ sung một @SuppressWarnings("AccessingNonPublicFieldOfAnotherObject")
Mã của tôi thực sự là như tầm thường như ví dụ đưa ra.
Cảnh báo từ Netbeans là gì? – Timothy
Cập nhật câu hỏi của tôi –
Tôi chỉ có thể suy đoán về lý do: Một số người nghĩ rằng 'riêng tư' có nghĩa là chỉ có đối tượng * hiện tại có thể truy cập trường (trong khi thực tế các đối tượng khác cùng lớp cũng có thể truy cập trường). Có lẽ cảnh báo này có nghĩa là một lời nhắc nhở rằng điều này là thực sự có thể và để ngăn chặn mọi người làm điều đó một cách vô tình. –