0

使用javax.tools.JavaCompilerand javax.tools.ToolProvider,我将一个用户输入字符串(应该是一个方法)与一个预定义的类一起包装在一个大字符串中,并在我的代码中执行它。有没有办法(在同一代码中)实例化已编译的类(因为它直到运行时才存在)以使用预定义的一组案例测试所述函数?

示例:提示用户编写一个方法,该方法返回作为参数发送给它的相反布尔值。

用户键入所述方法。

我围绕该方法包装了一个通用类,并使用一组预定义的测试用例(true,false)来检查它的功能(应该返回 false,true)

4

1 回答 1

1

也许,通过将生成的类读入byte[]并使用Classloader.defineClass(..)来解析/构造一个 Class 对象。要正确解析该类,该类引用的所有资源都应该可用于您正在使用的类加载器实例。一旦有了 Class 对象,就可以实例化它并使用反射调用方法。

于 2011-11-11T22:26:57.043 回答