论坛首页 Java版 Hibernate

关于hibernate访问持久化类的private方法

浏览 1931 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2005-09-09
我们知道,Java应用程序不能访问持久化类的private方法,但Hibernate没有这个限制,它能够访问各种级别的方法,如private, default, protected, public.
Hibernate是如何实现该功能的呢?望指教......
   
时间:2005-09-09
试过cglib可以Read/Write private字段,访问方法应该也可以
   
0 请登录后投票
时间: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)
{
}
   
0 请登录后投票
时间:2005-09-13
运用了反射机制来取得private方法,即然private方法还是可以取到并使用的,那么封装还有何意义?还望指教.
   
0 请登录后投票
时间:2005-09-14
对,一方面反射可以访问 private;而另一方面,当有个叫做 Name 的 private 字段,可以通过隐式的 getName() 获取。
   
0 请登录后投票
论坛首页 Java版 Hibernate

跳转论坛:
JavaEye推荐