해결된 질문
작성
·
605
1
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예
[질문 내용]
다른 질문에 달려있는 답변을 봐도 잘 이해가 가지 않아서 질문드립니다.
https://www.inflearn.com/questions/257297/testconfig-%ED%81%B4%EB%9E%98%EC%8A%A4%EC%97%90%EC%84%9C-static%EC%9D%84-%EB%96%BC%EB%B2%84%EB%A6%AC%EB%A9%B4 위의 링크 답변을 참고해도 이해가 잘 가지 않아 질문 드립니다.
static이 아닌 innerclass는 outerclass 인스턴스를 생성해서 접근이 가능하다고 합니다.
반면 static innerclass의 경우 outreclass이름.innerclass로 outerclass 인스턴스를 생성하지 않고 접근할 수 있다고합니다.
AnnotationConfigApplicationContext(TestConfig.class);
의 경우 TestConfig.class을 받아서 빈을 등록하는 걸로 알고있는데 static innerclass가 아닌 일반 innerclass로 넣을 경우 안되는 이유가 외부참조가 필요하기 때문인건가요?
그러면 static innerclass 인스턴스를 생성할때 outerclass이름.innerclass() 형태로 생성해야 할텐데 이 경우는 문제가 안되는 건가요?
답변 1
1
안녕하세요, KAIROS 님! 공식 서포터즈 codesweaver 입니다.
이렇게 생각하면 될 것 같습니다. static 은 어플리케이션 어디에서나 바로 접근할 수 있습니다.
반면 inner class 는 아무나 접근할 수 없습니다. 반드시 outer class 를 통해 접근해야 합니다.
그래서 AnnotationConfigApplicationContext(TestConfig.class); 이 부분에서 TestConfig.class 를 참조할 수 없습니다 :)
감사합니다.
감사합니다