본문 바로가기



프로그래밍/JAVA

[JAVA] Cannot make a static reference to the non-static method

위의 에러메시지를 해석해보면 non-static method에 static 레퍼런스를 만들 수 없다는 내용인데, 이클립스에서는 묘하게 연결되어있는 다른 클래스(패키지도 다를 수 있음)의 String 이나 int 값에 static를 시도하라고 권고하는 메시지를 보여준다.

public static void main(String[] args) {
		System.out.println(getName() + ":" + getYear()+" " );

문제가 발생했던 코드 블럭. 의외로 실수한부분이 해당 클래스 파일내에 있었는데 그것은 main 메소드에 static으로 지정해놧으니, 실제 실행에 가장 중요한 부분인 main메소드를 기준으로 판단할테니까 당연히 main메소드는 두고 다른 class의 메소드에 static을 사용하라는 권고를 낸것이다. 

해당 블럭의 static을 삭제하면 에러가 사라진다.  습관적으로 main method를 public static void main(String[] args ) { }으로 입력하다보니 발생한 실수 였다.