Almost-Native

자바 에러 : non-static variable cannot be referenced from a static context 본문

Java 프로그램 개발, IT

자바 에러 : non-static variable cannot be referenced from a static context

2020. 6. 30. 16:30

넷빈즈 또는 이클립스에서 Java 프로그램 코딩시 아래와 같은 에러를 만나는 경우가 있습니다.

 

 

"non-static variable cannot be referenced from a static context"

"static 으로 선언되지 않은 변수는 static 컨텍스트(함수)로 부터 참조될 수 없다"

 

이 에러는 static 으로 선언된 함수내에서 static 으로 선언되지 않은 변수를 사용했다는 오류 메시지 입니다.

위에서는 txtVariable 이 non-static 변수인데, 이게 넷빈즈에서 자동으로 만들어진 Swing Control 변수라 static 으로 변경이 안됩니다.

static 으로 바꿀수 있는 변수라면 그냥 변수 선언하는 곳에서 static 키워드만 넣어주면 더이상 에러가 안납니다.

 

static 은 new() 명령으로 객체를 생성(인스턴스화)하지 않아도 바로 쓸 수 있습니다.

static 이기 때문에 이미 인스턴스화되어 있어 다른 Java 페이지 등에서 마치 전역함수인 것처럼 편하게 호출해 쓸 수 있기 때문에 이런식으로 쓰려고 하면서 에러가 나는 것입니다.

 

 

위 1)번의 경우처럼 쓰고 싶을때 static 으로 함수를 선언해서 쓰는 것인데, 이것을 2)번 처럼 new 로 인스턴스화한 후에 사용하면 굳이 함수에 static 키워드를 넣을 필요가 없습니다.

 

Comments