본문 바로가기

Dev. Debug/프로그램

[펌] 자바 문법 에러 No enclosing instance of type ttt

개발자 커뮤니티에서 질문한 다른 사람의 소스를 그대로 복사하니 다음과 같은 에러가 발생했습니다.


No enclosing instance of type ttt is accessible. Must qualify the allocation with an enclosing instance of type ttt (e.g. x.new A() where x is an instance of ttt).


대충 느낌이야 왓는데 정확히 해보기 위해서 검색을 시작햇고요.

정확한 진단은 접근하려는 클래스의 인스턴스가 닫혀잇지 않다? 라는 뜻이라고 합니다.

영어도 뭐 그렇게 되어있는듯 한데 말이 어렵군요.


결론 바로 들어갑니다.

결론은 클래스가 static인지 확인을 해보셔야 할듯 합니다.

저는 자바의 static main에서 실행할려다 보니 이런 에러가 발생했던거 였슴다.

저 같은 경우는 다음과 같습니다.

public static void main(String[] args) {
        input in = new input();
}


바로 static 메서드안에서 non-static 메서드를 호출하려고 하니 문제가 있었습니다.


해결방법은 2개가 되겟네요.

1. input을 static으로 지정한다.

2. main의 static을 제거한다.


어때요 에러가 사라지셧나요?

조금이라도 도움이 되었나 모르겟네요.