2012-11-14 3 views
4

javac 내에서 실행되는 주석 프로세서를 작성하고 있습니다. 주석이 달린 클래스를 스캔하고 클래스 이름을 포함하는 리소스 파일을 생성합니다. 이 이름은 Class.forName(String) 덕분에 Class<?>을 얻을 수 있도록 런타임에 사용됩니다.내부의 TypeElement 클래스와 주석 프로세서를 가져옵니다.

javax.lang.model.element.TypeElement에서 클래스 이름 (예 : pgk1.pkg2.Foo $ Bar)을 가져 오는 방법.

팁 : 간단한 이름 (예 : Bar)이나 인증 된 이름 (예 : pgk1.pkg2.Foo.Bar)이 필요하지 않습니다.

답변

6

주석 처리기는 컴파일 된 것으로 초기화되고 ProcessingEnvironment 인스턴스를받습니다.

Name ProcessingEnvironment.getElementUtils().getBinaryName(TypeElement) 메서드는 나중에 클래스를 인스턴스화하는 데 사용할 수있는 이진 이름을 반환합니다.

+0

굉장! 너는 내 하루를 구했다. –