0

我正在研究一个将被许多不同类子分类的类。有一些静态方法需要知道调用源自的子类的名称。现在我知道我可以在静态方法中做这样的事情

foo(Class clazz, String things, String... stuff){}

但我更愿意让用户更轻松,而不必拨打电话,例如

Pass.retract(Pass.class, xxxx, yyyy);

相反,我希望它看起来像

Pass.retract(xxxx, yyyy);

现在,我知道 JPA 使用它的 find() 函数来做到这一点。我已经多次遍历搜索功能,但似乎实体变量被神奇地填充了。它是如何做到的?如果有任何大师有一个想法,我会非常感激。

4

1 回答 1

2

Play 1.x 做了很多神奇的事情,包括使用Javassist的 find 方法。它是一个运行时字节码增强器,可以通过做一些“魔术”来向用户隐藏 API 的复杂性。

也就是说,Play2 选择放弃这种方法,因为核心开发人员认为当人们试图维护核心代码库时,这种魔法太难理解了。

于 2012-07-20T17:06:10.767 回答