【问题标题】:Can I create a java class at runtime [closed]我可以在运行时创建一个 java 类吗[关闭]
【发布时间】:2018-12-05 00:22:47
【问题描述】:

我想根据一些结果动态创建 java 类。请告诉我是否可以创建它并在其中添加代码。 非常感谢您的帮助

【问题讨论】:

  • 添加一些您想要实现的目标以及到目前为止您已经尝试过的示例
  • 你可以。这对你的情况没有帮助。这种可能性存在于高级的东西,与你想要做的不对应。试着通过描述你想要做的事情来证明我错了,我们会为你指出一个更聪明的方法。
  • 好吧,你可以创建一个java文件,编译和加载类似于this example

标签: java class dynamic


【解决方案1】:

正如 cmets 中所说:“你可以。这对你的情况没有帮助。”

意思:如果你不得不问,你可能没有足够的经验/技能来做那种事情。含义:如果您无视此建议,您可能会花费大量时间来尝试使某些“工作”仍然具有“微妙”缺陷的东西。想到的一个例子:您可能很不小心,以至于忽略了 JVM 及其类加载器通过缓存加载的类来操作这一事实,这可能会破坏您在循环中进行类生成的意图。或者在 Web servlet 中,为每个传入的请求生成一次类。

也就是说:您可以在运行时生成的 java 源代码上调用编译器,并且如果您正确处理编译错误(您的“某些输入”是否完全正常?)并且如果您确保生成的 .class 文件结束up 存在于 JVM 的类路径中(在 servlet 容器中,这可能会破坏易于部署),如果您考虑类加载的所有可能问题(我自己不知道“所有”问题是什么),那么结果可能如您所愿为。

您已被警告。认真对待警告。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-01
    • 2015-03-01
    • 2015-06-20
    • 2012-11-17
    • 1970-01-01
    • 2010-09-30
    • 2021-11-12
    • 1970-01-01
    相关资源
    最近更新 更多