2012-02-25 4 views
1

최근에이 질문을했습니다 : Best choice? Edit bytecode (asm) or edit java file before compiling어떤 ASM API를 사용해야합니까?

ASM을 선택했습니다. 문서를 읽는 동안

는 지금은 ASM 2 API의 (이벤트 기반 및 기반 Object)를 제공하는 것으로 나타났습니다

내가 어떻게 내 문제에 가장 적합한 API 것?

나는 이벤트를 기반으로 생각하고 있습니다. 모든 비교/특정 작업을 찾고 싶기 때문에

당신의 의견은 어떻습니까?

+2

"이벤트 처리 및 메모리 처리 : 이벤트 처리는 경량이지만 약간 제한적입니다. 반면에 메모리 처리는보다 유연하고 사용하기 쉽습니다. 내부 메모리 처리기는 DOM XML 파서가 내부적으로 SAX XML 파서를 사용하는 것처럼 내부적으로 이벤트 기반 프로세서를 사용합니다. " http://www.geekyarticles.com/2011/10/manipulating-java-class-files-with-asm.html – L7ColWinters

답변

2

전적으로 원하는 변환 유형에 따라 다릅니다. 변환이 하나의 메소드에서 특정 바이트 코드에서만 작동하고이 바이트 코드 전후에 코드를 삽입하면 이벤트 기반 API가 매우 사용하기 쉽습니다.

트리 기반 API는 클래스의 다른 메소드에 대한 정보가 필요하거나 수정할 바이트 코드 주위에 더 많은 컨텍스트가 필요할 때 편리합니다.

편집 : 먼저, 두 가지 접근법을 결합하여 트리 구조를 구축하고 클래스에 대한 몇 가지 정보를 확인하고 이벤트 기반 API를 사용하여이 트리 노드를 변환 할 수있다.

+0

그러면 제 공작은 옳았습니다. 감사! – tgoossens

관련 문제