IT/자바, 스프링

attempting to assign weaker access privilege (private, public)

thesse 2022. 9. 19. 17:17
300x250
반응형

접근 제한자가 맞지 않아서 나는 경고이다.

 

 

public class MyServiceImpl implements MyService {

    @Override
    public String first(){    
        ...
        second();    
    }


    private void second(){  // 여기서 빨간줄이 뜸 : attempting to assign weaker access privilege 
        ...    
    }

}

 

원래 public이었던 second()를 private으로 변경하려고 하니 인텔리제이가 빨간 줄을 띄워댄다.

 

하지만 나는 public 메서드에서 private 메서드를 호출하려고 하는 건데

왜 이러는걸까?

 

 

 

문제는 해당 클래스가 implements하고 있는 MyService에 있었다.

 

public interface OCIService {

    public String first();
    public void second();
    
}

 

@Override 어노테이션을 안달아놨다고 까먹은 것이다 ㅡㅡ

 

인터페이스에서 second() 선언을 삭제하자 private으로 무사히 변경되었다.

외부 어디에서도 사용되지 않고 있었으므로 다른 문제가 없었다.

 

 

 


* 접근 제한자의 크기 비교

public > protected > default > private

300x250
반응형