배열 또는 가변 타입(Collection, Date, MapCalendar 등)의 반환 또는 메서드 매개변수로부터 배열 또는 가변 타입으로의 대입을 보고합니다.

이러한 타입은 가변적이므로, 이 구문으로 인해 소유 클래스 외부에서 예기치 않은 객체 상태 수정이 발생할 수 있습니다. 이 구문은 성능면에서 유익할 수 있지만 본질적으로 버그가 발생하기 쉽습니다.

다음과 같은 가변 타입이 보고됩니다:

빠른 수정은 필드의 .clone() 메서드 호출을 추가합니다.

예:


  class Log {
    String[] messages;
    ...

    String[] getMessages() {
      return messages; // 경고: String[] 필드 'messages'를 반환합니다
    }
  }

빠른 수정을 적용한 후:


  class Log {
    String[] messages;
    ...

    String[] getMessages() {
      return messages.clone();
    }
  }

private 메서드의 대입 및 반환 무시 옵션을 사용하여 private 메서드의 대입과 반환을 무시합니다.