2012-01-04 3 views
0

Java 프로그램에서 (주어진 시간에) 주어진 인터페이스를 구현하는 모든 클래스를 열거/열거하고 클래스 이름을 검색하려고합니다. 가능한가? 어떻게해야합니까? 당신은 자바에게 Reflection주어진 인터페이스를 구현하는 패키지의 모든 클래스 나열하기

이 링크를 사용해야합니다

+0

가능한 복제본 [Java로 주어진 클래스의 모든 서브 클래스를 어떻게 찾을 수 있습니까?] (http://stackoverflow.com/questions/492184/how-do-you-find-all-subclasses-of-a- given-class-in-java) – rsp

+0

중 하나 선택 http://stackoverflow.com/questions/435890/find-java-classes-implementing-an-interface 및 http://stackoverflow.com/questions/3123095/ 클래스 내에서 인터페이스를 찾을 수있는 모든 방법을 찾을 수 있습니다. 결과를 미세 조정해야 할 수도 있습니다. – Jayan

+0

@Jayan이 나열한 질문의 중복을 제거하십시오. – parasietje

답변

1

는 반사를 사용하여 할 수있는 모든 일을 포함 튜토리얼을 제공합니다. 당신은 반사를 사용하는 것을 수행하는 방법에 자세히 설명하기가

2

부터 코드를 구축 할 수 있습니다 : 당신은 Thread.currentThread().getContextClassLoader()로 시작 할 수

. Enumeration<URL> resources = classLoader.getResources(path);

는 그런 다음 리소스에서 파일 이름을 해독해야하고, (일부 디렉토리 수도로 재귀 적으로) 그 반복 : 경로로 패키지 이름을 사용 , 자원에서 얻을. .class 파일의 리소스를 필터링하고 Class.forName()으로 클래스를 인스턴스화하고 구현 한 인터페이스를 확인하십시오.

관련 문제