java执行之间的Java字符IO

发布于 2024-12-15 05:30:49 字数 295 浏览 1 评论 0原文

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

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

用户输入所述方法。

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

Using javax.tools.JavaCompiler and javax.tools.ToolProvider, I'm wrapping a user-input string (which should be a method) with a predefined class all within a large string and executing it within my code. Is there a way to (in the same code) instantiate the class that was compiled (as it doesn't exist until runtime) to test said function with a predefined set of cases?

Example: User is prompted to write a method that returns the opposite boolean sent to it as an argument.

User types in said method.

I wrap a generic class around the method, and use a predefined set of test cases (true, false) to check it's functionality (should get false, true back)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦回梦里 2024-12-22 05:30:49

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

Perhaps, by reading the generated class into byte[] and using Classloader.defineClass(..) to resolve/construct a Class object. To resolve the class properly, all resources referred by this class should be available to the classloader instance you're using. Once you have a Class object, you can instantiate it and invoke the method using reflection.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文