2011-02-08 68 views
1

Java标准允许在编译时对AST进行操作。但是没有关于API的标准,每个编译器都以不同的方式实现它(甚至在不同的版本之间)。在工作中,我们曾经有过一些混合编译时间和加载时间的交集。我们现在正在变成一个以Eclipse为中心的开发过程,这种黑客给我们带来了一些麻烦。Java编译时的Intersection有用吗?

我写了一个JVM代理,它加载了一个Javassist转换器并重写了字节码,消除了编译时间交叉的需要,并解决了我们的问题。

我的问题是:在Java编译时相交是否有用?是否有一个使用案例,你不能在加载时使用十字路口吗?

+2

这没有意义。你的意思是“反省”吗? – 2011-02-09 00:54:11

+0

不,调查代码的元表示称为反射。改变它被称为交集。 – 2011-02-09 14:13:26

回答

0

听起来很聪明,可以提交给非公开API。当它发生变化时会发生什么,因为发布API没有公开承诺?

添加后编译步骤并使用ASM。