当前位置: 移动技术网 > IT编程>开发语言>Java > java中利用反射调用另一类的private方法的简单实例

java中利用反射调用另一类的private方法的简单实例

2019年07月22日  | 移动技术网IT编程  | 我要评论

我们知道,java应用程序不能访问持久化类的private方法,但hibernate没有这个限制,它能够访问各种级别的方法,如private, default, protected, public. hibernate是如何实现该功能的呢?答案是利用java的反射机制,如下: 

import java.lang.reflect.invocationtargetexception;
import java.lang.reflect.method;
public class reflectdemo {
	public static void main(string[] args) throws exception {
		method method = packageclazz.class.getdeclaredmethod("privilegedmethod", new class[]{string.class,string.class});  
		method.setaccessible(true);
		method.invoke(new packageclazz(), "452345234","q31234132");
	}
}

class packageclazz {
	private void privilegedmethod(string invokername,string adb) {
		system.out.println("---"+invokername+"----"+adb);
	}
}

输出结果为:---452345234----q31234132

我们看到,利用java的反射机制,即使是private方法,也可以被调用使用.不过我到产生一个疑问--即然private方法都可以被调用,那么封装又有何意义? 

以上这篇java中利用反射调用另一类的private方法的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网