2011-02-08 2 views
1

Java 표준은 컴파일 타임에 AST 조작을 허용합니다. 그러나 API에 대한 표준은 없으며 모든 컴파일러는 버전 간에도 다르게 구현합니다. 직장에서 우리는 컴파일 시간과로드 시간 교차를 혼합하는 해킹을 사용했습니다. 우리는 이제 일식 집중 개발 프로세스로 바뀌고 있으며,이 해킹은 우리에게 몇 가지 문제를 안겨줍니다.Java 용 컴파일 시간에 교차점이 유용합니까?

필자는 Javassist 변환기를로드하고 바이트 코드를 다시 작성하고 컴파일시 교차점을 제거하고 문제를 해결하는 JVM 에이전트를 작성했습니다.

제 질문은 : Java의 컴파일 시간에 교차점이 유용합니까? 로드 타임에 교차로를 사용할 수없는 유스 케이스가 있습니까?

+2

이것은 이해가되지 않습니다. "내성"을 의미합니까? –

+0

아니요, 코드의 메타 표현을 살펴 보는 것을 Reflection이라고합니다. 그것을 교량이라고 부른다. –

+0

* intersection *의 의미에 대한 설명 링크가 있습니까? 전에는 그 이름을 듣지 못했고 [Wikipedia] (http://en.wikipedia.org/wiki/Intersection)에는 목록이 없습니다. –

답변

0

비공개 API를 사용하는 것이 현명하지 않습니다. API를 게시하여 공개 약정이 없으므로 변경되면 어떻게됩니까?

포스트 컴파일 단계를 추가하고 ASM을 사용하십시오.

+0

아이디어는 그 개인 API를 추상화하고 포스트 컴파일 조작을 사용하지 않는 라이브러리를 만드는 것이다. 각 변경 사항은 해당 버전에 대한 변환기를 작성하기 만하면됩니다. –