0

我正在开发一个托管用户定义的存储过程的应用程序,这些存储过程作为 Java 类文件提供。程序需要是确定性的,我想将各种包和方法列入黑名单,这些包和方法是非确定性的来源。我查看了 java.lang.Class 和 javax.tools.* 中可用的内容。

看起来我可以使用 java.lang.Class 审核成员、方法参数和返回类型。但是,要审核方法内容,我似乎必须分析原始类文件。

我还需要审核静态初始化块和成员变量初始化等极端情况。在某些情况下,例如 java.util.Date,默认构造函数是不确定的,但其他情况都很好。

是否有一个框架或工具可以使分析类文件的这些方面变得容易?

4

1 回答 1

1

是的,有。正如您所说的“分析这些方面”,使用例如AspectJ ;) 例如,您可以使用 javaagent 的加载时编织。另一种方法是使用 aspectj 类加载器加载用户的类。您可以声明寻找给定方法调用的切入点。您还可以附上用户方法和计算执行时间等。

于 2011-07-23T14:39:54.487 回答