2013-01-15 2 views
-2

호기심에서 벗어나서 어떤 클래스에서든 static final int SIZE 필드를 인쇄하려고했습니다. "그것을 가진 모든 클래스"를 얻으려면 방금 클래스를 얻으려고했습니다. 하지만 항상 길이 0 배열을 반환하는 것으로 나타났습니다.object.getClass(). getClasses()가 빈 배열을 반환하는 이유는 무엇입니까?

상무부이 클래스 오브젝트가 공개 부재 클래스 또는 인터페이스가없는 경우

이 방법은 길이 0의 배열을 반환 말한다. 이 Class 객체가 프리미티브 유형, 배열 클래스 또는 void를 나타내는 경우에도이 메소드는 길이가 0 인 배열을 반환합니다.

그러나 객체는 프리미티브로 나열되지 않습니다. 객체가 어떻게 든 무효로 간주됩니까?

어떻게 할 수 있습니까?
- 모든 클래스의 배열을 가져 옵니까?

- 왜이 기능이 Object에서 작동하지 않습니까?

답변

7

getClasses() 메서드는이 메서드가 호출되는 클래스 개체의 내부 클래스 (본문 내부에 선언 된 클래스)의 배열을 반환합니다. 대부분의 클래스에서는 항상 0이됩니다. 모든 클래스를 사용할 수 없습니다. 클래스 로더 살펴보기 - 자바에서는 사용 가능한 모든 클래스를 생성하는 메서드가 없습니다. 이 정보를 제공하는 특정 클래스 로더를 사용해야합니다.

관련 문제