您的位置:首页 > 编程语言 > Java开发

JAVA 反射机制

2016-06-12 23:08 471 查看

一、首先应该获取Class类加载器的信息 有2种方式

1、Class myObjectClass = MyObject.class;

2、Class class = Class.forName(className);

二、获取要操作的具体对象 如:method、filed 等

1、获取构造器

Constructor constructor = MyObject.class.getConstructor(String.class);
MyObject myObject = (MyObject)
constructor.newInstance("constructor-arg1")


2、获取变量

MyObject objectInstance = new MyObject();
Object value = field.get(objectInstance);
field.set(objetInstance, value);


3、获取方法

MyObject objectInstance = new MyObject();
Method method = MyObject.class.getMethod("doSomething", String.class);
Object returnValue = method.invoke(objectInstance , "parameter-value1");


4、获取私有变量

Field privateStringField = PrivateObject.class.
getDeclaredField("privateString");
privateStringField.setAccessible(true);
String fieldValue = (String) privateStringField.get(privateObject);


5、获取私有方法

Method privateStringMethod = PrivateObject.class.
getDeclaredMethod("getPrivateString", null);
privateStringMethod.setAccessible(true);
String returnValue = (String)
privateStringMethod.invoke(privateObject, null);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: