应用反射调用对象的私有方法和私有变量

使用反射调用对象的私有方法和私有变量
代码小例子:
package com.test;

import java.lang.reflect.Field;
import java.lang.reflect.Method;

/**
 * 使用反射调用对象私有方法,私有属性
 * 
 * @author yale
 * 
 */
public class ReflectInvokeTest
{
	public static void main(String[] args) throws Exception
	{
		Yale p = new Yale();
		Class<? extends Object> clazz = p.getClass();

		Method method = clazz.getDeclaredMethod("sayHiHi",
				new Class[] { String.class });
		method.setAccessible(true);// 压制java的访问控制检查 可以访问类的私有方法
		Object o = method.invoke(p, new Object[] { "hello" });
		System.out.println(o);
		System.out.println("------------------");
		Field f = clazz.getDeclaredField("name");
		f.setAccessible(true);// 压制java的访问控制检查 可以访问类的私有属性
		f.set(p, "lisi");
		System.out.println(p.getName());
	}
}

class Yale
{
	private String sayHiHi(String word)
	{
		return word;
	}

	private String name = "yale";

	public String getName()
	{
		return name;
	}
}


1 楼 song_in_china 2012-06-07  
代码和人一样好看
2 楼 onlyOneToOne 2012-06-08  
song_in_china 写道
代码和人一样好看

乖不好意思的应用反射调用对象的私有方法和私有变量
3 楼 song_in_china 2012-06-09  
onlyOneToOne 写道
song_in_china 写道
代码和人一样好看

乖不好意思的应用反射调用对象的私有方法和私有变量

有啥不好意思的
4 楼 song_in_china 2012-06-12  
美女我又来看你来了
5 楼 song_in_china 2012-06-12  
刚刚写了个控制器框架,练练手
6 楼 onlyOneToOne 2012-06-12  
song_in_china 写道
刚刚写了个控制器框架,练练手

好,不错,继续努力应用反射调用对象的私有方法和私有变量