2013-11-25 1 views
0

Java 바이트 코드를 구문 분석하기 위해 ASM 라이브러리를 사용하고 있습니다. 이제 메소드를 구문 분석하려고하는데, 좋은 방법입니다.ASM 바이트 코드 라이브러리의 Generics 정보 얻기

public MethodVisitor visitMethod(int arg0, String arg1, String arg2, 
     String arg3, String[] arg4) 
{ 
    System.out.println("Method params: " + arg2); 
} 

바로 인쇄 :하지만이 방법 방문자 코드를 고려 메소드의 매개 변수를 구문 분석 비트 문제에 직면하고 있었던 파라미터 형 일반 목록, ArrayList를, 설정 등으로 특히 경우에 해당하는 Java 소스 코드로 변환하고

을 이 방법 매개 변수에 대한
(Ljava/util/List;)V 

: 당신은 내가 <과사이에 오는 모든 것들을 잃었 볼 수 있듯이

List<String> foo; 

. 제네릭 유형에 대한 삭제를 알고 있습니다.

그러나 어떤 종류의 목록이 단지 java/util/List이 아닌지 알기 위해서는이 정보가 필요합니다. 이 정보를 얻기 위해 어쨌든 ASM 라이브러리를 사용합니까?

답변

3

ASM에는 유형 서명을 방문하는 데 사용할 수있는 SignatureVisitor이 있습니다. 방문한 클래스, 메소드 및 필드의 제네릭 정보를 포함합니다.

당신은 4.1 절 아래 asm guide에 대한 자세한 정보를 찾을 수 있습니다 - 제네릭

+0

우수함! 도와 주셔서 감사합니다. –