FindBugs는 다음과 같은 설명과 함께 EI_EXPOSE_REP라는 버그를 제기 배열에 의한 EI_EXPOSE_REP라는 버그를 제기 객체의 필드 중 하나에 저장된 값은 객체의 내부 표현을 나타냅니다. 인스턴스가 신뢰할 수없는 코드에 의해 액세스되고 변경 가능한 객체에 대한 검사되지 않은 변경으로 보안 또는 기타 중요한 속성이 손상 될 경우 다른 작업을 수행해야합니다. 많은 경우에 객체의 새로운 복사본을 반환하는 것이 더 나은 방법입니다. FindBugs는
class Person {
private String[] hobbies;
String[] getHobbies(){ return hobbies;}
void setHobbies(String[] hobbies){ this.hobbies = hobbies;}
}
나는 몇 가지 솔루션을 알고 대신 배열의
- getHobbies() {반환 hobbies.clone을()};
제가 알고 싶은 것은 단지 배열이이 버그를 제기하는 이유입니다. 목록에이 문제가 없습니까? 배열이 다른 컬렉션과 다른 이유는 무엇입니까?
목록이 변경 가능하기 때문에 목록에 대해 동일한 경고를받지 못하는 이유가 확실하지 않습니다. – alfasin