sample34_8.java

来自「Java SE 6.0前32-34章示的示例代码,简单易学」· Java 代码 · 共 44 行

JAVA
44
字号
package wyf.jc;
import java.lang.reflect.*;
//自定义用来测试的类
class Employee
{
	private String sname;//员工姓名
	//私有方法
	private void sayHello()
	{
		System.out.println("您好,我是"+sname
		             +",恭喜您成功访问了private的方法sayHello!!!");
	}
}
//主类
public class Sample34_8
{
	public static void main(String args[])
	{
		try
		{
			//创建Employee对象
			Employee tom=new Employee();
			//获取Employee类对应的Class对象
			Class ec=tom.getClass();
			//获取Employee类声明的成员变量对应的Field数组
			Field[] fa=ec.getDeclaredFields();
			//设置sname成员变量的访问限制为允许
			fa[0].setAccessible(true);
			//设置sname成员变量的值
			fa[0].set(tom,"Tom");
			//获取Employee类声明的方法对应的Method数组
			Method[] ma=ec.getDeclaredMethods();
			//设置所有方法的访问限制为允许
			AccessibleObject.setAccessible(ma,true);
			//调用sayHello方法
			ma[0].invoke(tom,new Object[0]);			
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}	    	
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?