首页 > 解决方案 > 我可以在运行时创建一个 java 类吗

问题描述

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

标签: javaclassdynamic

解决方案


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

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

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

你已经被警告过了。认真对待警告。


推荐阅读