IntelliJ 'Access can be package-private' 경고 원인 및 비활성화 시키기
IntelliJ를 이용하다가 public 접근 제한자가 붙은 메서드에서 다음과 같은 경고를 만나보신 적 있으실겁니다.



원인은 간단한데, public 접근 제한자를 지우는것을 권장하는 경고입니다. public을 지우게 되면 default 접근제한자가 되며, 이경우 어디서나 해당 메서드에 접근할 수 있었던것과는 다르게 같은 패키지 내에서 접근 범위를 갖게 됩니다.

그렇다면 왜 public을 지우고 package-private(default 접근제한 범위)를 갖게 하라는 것일까요? 이유는 해당 메서드가 현재 패키지 밖에서 호출되지 않기 때문입니다.

즉 com.packageaa.AA클래스의 getEmail() 메서드는 com.packagebb.BB클래스 같은 다른 패키지에서 호출되고 있지 않는 상태일때 IntelliJ는 지금 AA클래스의 getEmail() 메서드가 다른 패키지에서 호출되고 있지 않은데 굳이 왜 public으로 해놓은거야? 캡슐화를 위해 public을 지워! 라고 하는 것이죠. 따라서 두가지 선택권이 있습니다. 정말로 해당 메서드가 다른 패키지에서 사용될 일이 없는 메서드라면 public을 지우는것이 좋습니다.

만약 코딩 단계라 사용되지 않는것이지 나중에 다른 패키지에서 사용될 메서드라면 설정을 비활성화 시켜주면 됩니다.


첫번째 설정 방법으로는 public에 커서를 두고 Alt + Enter 키를 누릅니다. 이후 Make 'package-private' 에서 방향키 → 를 눌러 Disable inspction을 선택합니다.



두번째 설정 방법은 결론적으로는 첫번째 방법과 같지만 수동으로 비활성화 하는 방법입니다.
IntelliJ 실행 > 상단 File > Settings...에 들어가거나 Ctrl + Alt + S 단축키를 이용합니다.



Editor > Inspections > Java > Declation redundancy > Declaration access can be weaker체크 해제 후 설정을 저장합니다.


블로그 이미지

도로락

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그

,