浏览 1931 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2005-09-09
我们知道,Java应用程序不能访问持久化类的private方法,但Hibernate没有这个限制,它能够访问各种级别的方法,如private, default, protected, public.
Hibernate是如何实现该功能的呢?望指教...... 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间:2005-09-09
试过cglib可以Read/Write private字段,访问方法应该也可以
|
|
| 返回顶楼 | |
|
时间:2005-09-09
hiswing 写道 我们知道,Java应用程序不能访问持久化类的private方法,但Hibernate没有这个限制,它能够访问各种级别的方法,如private, default, protected, public.
Hibernate是如何实现该功能的呢?望指教...... public class test { public test() { } private void print() { System.out.println("dd"); } } try { Method method = test.class.getDeclaredMethod("print", new Class[] {}); method.setAccessible(true); method.invoke(new test(), new Object[] {}); } catch (Exception ex) { } |
|
| 返回顶楼 | |
|
时间:2005-09-13
运用了反射机制来取得private方法,即然private方法还是可以取到并使用的,那么封装还有何意义?还望指教.
|
|
| 返回顶楼 | |
|
时间:2005-09-14
对,一方面反射可以访问 private;而另一方面,当有个叫做 Name 的 private 字段,可以通过隐式的 getName() 获取。
|
|
| 返回顶楼 | |





