주석 처리기는 두 개의 TypeElement을 제공합니다. 하나는 주석 처리 된 개체 용이고 다른 하나는 주석 자체입니다.코드 생성을 위해 주석 처리 중 주석 처리 된 클래스 유형을 검색하는 방법은 무엇입니까?
코드를 생성하기 위해 주석 처리 중에 주석 처리 된 객체의 유형을 알아야한다고 가정 해 봅시다. 규정 된 이름은 TypeElement.getQualifiedName()으로 추출 할 수 있습니다. 그러나 Class.forName(fullyQualifiedName)
을 사용하려는 시도는 ClassNotFoundException
입니다.
아마 클래스가 주석 처리 코드의 경로에 있지 않음을 의미합니다. 주석 처리 중에 주석 처리 된 코드를 처리 라이브러리의 클래스 경로에 둘 필요없이 이러한 클래스를 검색 할 수 있습니까?
해결 방법은 같은 것을 생성하는 것입니다 : 대신 생성 된 코드에서
Class c = Class.forName("thefullyqualifiedname");
및 사용에 c하지만 깨끗하지 않습니다. 내가 가지고 올 수
생성 된 코드를 통해 구조 (즉, 집합)에 주석이 달린 클래스 유형을 등록해야합니다. 자동화되어야합니다. 따라서 어노테이션 처리 중에 어쨌든 검색/액세스해야합니다. – JVerstry
annotated 인터페이스를 구현하는 클래스를 가져 오려고합니다.이 목적을 위해 Reflections 클래스는 Class 객체를 필요로합니다 :'getSubTypesOf()'. 하위 유형을 찾거나 구현 된 인터페이스에서 주석을 찾을 수있는 다른 방법을 찾지 못했습니다. –