java 执行之间的 Java 字符 IO

标签 java io java-compiler-api

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

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

用户在所述方法中键入。

我在该方法周围封装了一个泛型类,并使用一组预定义的测试用例(true、false)来检查其功能(应该返回 false、true)

最佳答案

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

关于java 执行之间的 Java 字符 IO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8100280/

相关文章:

input - Prolog-文件意外结束

java - CompilationTask.call() 引入了 ClassNotFoundException。在 JDK6 中工作,不在 JDK7 中工作

java - 在运行中访问新编译的程序

java - 我的代码没有错误,但也没有结果

java - 核心java中的文件处理

java - 需要帮助选择数据挖掘/神经网络 API

hash - 尝试模拟哈希元素的获取和放置时,RSpec 无法定义单例错误

java - 从另一个java程序运行java程序

java - 通过反射调用方法时包含参数

java - ElasticSearch单节点集群内存不足