-2

I've got a class which references a java.lang.reflect.Method, and I need to store that class and that reference.

Does anybody know how to do it?

It seems to me I can't do it straightforward, but I think I could decompose a java.lang.reflect.Method into class-name, method-name, class-name-parameters, and store those Strings. In that way, I could re-generate the Method object from them when loading it.

Does it make sense? In that case, any idea about how to do it?

4

1 回答 1

0

您不能将Method实例保存在数据库中。它不可序列化。

您可以做的最好的事情是创建一对表示方法名称和签名的字符串,以及定义它的类的完全限定名称。如果将它们存储在数据库中,则可以使用反射重构Method(and Class) ...前提是该类在类路径上可用。

关于如何做的任何想法?

应该相当直接地使用ClassMethodAPI。我建议您阅读相应的 javadocs,并尝试自己编写代码。如果您有问题,请提出后续问题,包括给您带来问题的代码。


你知道我应该如何/在哪里指定分解和重建策略吗?我希望 Hibernate 为我做这件事,这样我就不会污染我的业务模型层。

在您的 Java 代码中。这不是 Hibernate / JPA 会自动为您做的事情。(首先,关于类路径中存在的类的警告实际上意味着不能保证反向转换工作......)


实际上,您对持久对象(以某种形式或另一种形式)的“要求”Method表明您的应用程序设计变得过于复杂...... IMO。

于 2013-09-30T16:03:48.120 回答