我正在开发一个托管用户定义的存储过程的应用程序,这些存储过程作为 Java 类文件提供。程序需要是确定性的,我想将各种包和方法列入黑名单,这些包和方法是非确定性的来源。我查看了 java.lang.Class 和 javax.tools.* 中可用的内容。
看起来我可以使用 java.lang.Class 审核成员、方法参数和返回类型。但是,要审核方法内容,我似乎必须分析原始类文件。
我还需要审核静态初始化块和成员变量初始化等极端情况。在某些情况下,例如 java.util.Date,默认构造函数是不确定的,但其他情况都很好。
是否有一个框架或工具可以使分析类文件的这些方面变得容易?