我正在研究一个将被许多不同的分类子类化的类。有一些静态方法需要知道调用源自的子类的名称。现在我知道我可以在静态方法中做这样的事情
foo(Class clazz, String things, String... stuff){}
但我更希望让用户更轻松,而不必拨打电话,例如
Pass.retract(Pass.class, xxxx, yyyy);
相反,我更喜欢它看起来像
Pass.retract(xxxx, yyyy);
现在,我知道JPA使用它的find()函数来做到这一点。我已多次遍历搜索功能,但似乎实体变量是神奇地填充的。它是如何做到的?如果有任何一个大师有一个想法,我真的很感激。
答案 0 :(得分:2)
播放1.x做了很多魔术,包括使用Javassist的查找方法。它是一个运行时字节码增强器,可以通过做一些“魔术”来隐藏用户的API复杂性。
也就是说,Play2选择放弃这种方法,因为核心开发人员认为当人们试图维护核心代码库时,魔术太难理解了。