Java에서 JDK 라이브러리를 사용하여 다른 클래스에 구현 된 개인 클래스를 찾는 방법이 있습니까? 아니면 asm과 같은 것을 사용해야합니까?리플렉션을 사용하여 Java 클래스의 '선언 된 내부 클래스를 발견 할 수 있습니까?
34
A
답변
46
4
나는 이것이 당신이 한 것 같아. 클래스. getClasses().
6
package com.test;
public class A {
public String str;
public class B {
private int i;
}
}
package com.test;
import junit.framework.TestCase;
public class ReflectAB extends TestCase {
public void testAccessToOuterClass() throws Exception {
final A a = new A();
final A.B b = a.new B();
final Class[] parent = A.class.getClasses();
assertEquals("com.test.A$B", parent[0].getName());
assertEquals("i" , parent[0].getDeclaredFields()[0].getName());
assertEquals("int",parent[0].getDeclaredFields()[0].getType().getName());
//assertSame(a, a2);
}
}
관련 문제
- 1. 내부 클래스의 Java - IO
- 2. 클래스의 내부 클래스를 Boardcast 수신기로 등록 할 수 있습니까?
- 3. Java reflection : 익명 내부 클래스를 검색하려면 어떻게해야합니까?
- 4. 플래시는 다른 클래스의 선언 섹션에서 클래스를 인스턴스화 할 수 없습니까?
- 5. 리플렉션을 사용하여 정적 클래스의 정적 정적 멤버를 설정할 수 있습니까?
- 6. 외부 클래스가 내부 클래스의 멤버에 액세스 할 수 있습니까?
- 7. 리플렉션을 사용하여 app.config에서로드 된 객체를 어떻게 디버깅 할 수 있습니까?
- 8. 내부 클래스의 메서드가 부모 클래스 메서드에 액세스 할 수 있습니까?
- 9. 리플렉션을 사용하여 Java에서 익명 클래스의 컴파일러 번호에 액세스 할 수있는 방법이 있습니까?
- 10. 기본 클래스의 신호를 선언 할 수 없습니다
- 11. 리플렉션을 사용하여 메소드의 코드를 검사 할 수 있습니까?
- 12. 클래스의 수 실행 Java
- 13. Java Reflection을 사용하여 중첩 클래스의 인스턴스를 만들 수 있습니까? 코드의
- 14. 클래스의 모든 서브 클래스를 가져올 수 있습니까?
- 15. 리플렉션을 사용하여 정적 클래스의 목록을 얻으십시오
- 16. 파이썬에서, 메소드가 선언 된 클래스를 어떻게 결정할 수 있습니까?
- 17. 리플렉션을 사용하여 추상 클래스의 속성에 액세스합니다.
- 18. VB.NET을 사용하여 클래스에서 선언 된 변수를 무시할 수 있습니까?
- 19. 클래스를 내부 클래스로 정의 할 때 일반적으로 공용 필드를 내부 클래스로 정의 할 수 있습니까?
- 20. 템플릿 클래스의 내부 클래스를 허용하는 함수의 문제점
- 21. 클래스를 C++에서 정적으로 선언 할 수 있습니까?
- 22. 내부 클래스의 외부 클래스 객체에 액세스 할 수 있습니까?
- 23. 리플렉션을 사용하여 비공개 최종 클래스를 인스턴스화하는 방법은 무엇입니까?
- 24. 리플렉션을 사용하여 클래스의 속성 멤버에 액세스하는 더 빠른 방법이 있습니까?
- 25. nDepend와 CQL은 파생 된 클래스의 클래스를 직접 사용하여 클래스를 요청할 수 있습니까?
- 26. Java 중첩 클래스에서, 둘러싼 클래스가 내부 클래스의 개인 멤버에 액세스 할 수 있습니까?
- 27. 내부 생성자를 사용하여 클래스를 deserialize
- 28. XmlSerializer가 public으로 선언 된 serialize 된 개체의 클래스를 요구하는 이유는 무엇입니까?
- 29. 리플렉션을 사용하여 파일의 특정 클래스를 찾으십니까?
- 30. 리플렉션을 사용하여 현재 실행중인 클래스 이름을 가져올 수 있습니까?