나는 6.9 이것에 대해 경고이복사 생성자에서 다른 객체의 비공개 필드에 액세스 - 정말 문제가 있습니까? 내 자바 응용 프로그램에서
public MyClass(MyClass src) {
this.field1 = src.field1;
this.field2 = src.field2;
this.field3 = src.field3;
...
}
이제 넷빈즈 같은 일부 복사 생성자를 가지고 있고이 코드에 어떤 문제가 있는지 궁금해?
내 문제 :
- 원치 않는 부작용을 소개 할 수 게터를 사용. 새 객체는 더 이상 원본 사본으로 간주 될 수 없습니다.
- getter를 사용하는 것이 좋습니다 경우 새로운 인스턴스에도 setter를 사용하는 것이 더 일관성이 없습니까?
편집 : 실제 경고 및 넷빈즈는 @SuppressWarnings("AccessingNonPublicFieldOfAnotherObject")
내 코드를 추가 제공하는 유일한 가능한 액션 "다른 개체의 private 필드의 액세스"입니다 실제로 주어진 예처럼 간단하다.
Netbeans의 경고는 무엇입니까? – Timothy
내 질문 업데이트 됨 –
나는 그 이유에 대해서만 추측 할 수있다. 어떤 사람들은'private '은 현재의 * object * 만이 필드에 접근 할 수 있다는 것을 의미한다고 생각한다. (실제로 같은 클래스의 다른 객체도 필드에 접근 할 수있다. 어쩌면이 경고는 이것이 실제로 가능하다는 것과 사람들이 우발적으로 그것을하지 못하게한다는 것을 상기시키는 의미 일 수 있습니다. –