인프런 커뮤니티 질문&답변

HappyJay님의 프로필 이미지
HappyJay

작성한 질문수

더 자바, 코드를 조작하는 다양한 방법

리플렉션 API 1부: 클래스 정보 조회

인스턴스 관련해서 질문이 있습니다.

작성

·

343

5

안녕하세요. 우선 매번 좋은 강의 올려주셔서 정말 감사합니다^^

질문이 있는데 클래스 로딩이 끝나고 나서 heap 영역에 인스턴스 관련 정보가 들어가 있고

Class<Book> bookClass = Book.class 를 통해 인스턴스를 가져올 수 있다고 했는데

그러면 이 인스턴스는 new Book() 으로 생성된 인스턴스와는 다른 건가요?

실제 멤버변수의 값을 가져오기 위해서는 왜 new Book() 으로 인스턴스를 생성해야 하는지 궁금합니다.

그리고 Book.class 로 가져오는 인스턴스와 new Book() 으로 생성된 인스턴스가 다르다면 어떻게 다른지도 알 수 있을까요?

답변 1

7

백기선님의 프로필 이미지
백기선
지식공유자

Book.class와 New Book() 인스턴스는 타입부터가 다르니 당연히 다른 인스턴스죠. 실제 다른지는 인스턴스를 가지고 == 비교를 해보시면 될테구요. Book.class는 'Book 클래스'에 대한 정보를 담고 있는 인스턴지 Book 인스턴스가 아니기 때문에 Book 인스턴스의 멤버 변수값을 가져올 수 없습니다.

클래스와 인스턴스에 대해 좀 더 고민하고 공부해 보시기 바랍니다.

HappyJay님의 프로필 이미지
HappyJay

작성한 질문수

질문하기