?? fieldtest.java
字號(hào):
import java.lang.reflect.*;
/**
* Description:
* <br/>Copyright (C), 2008-2010, Yeeku.H.Lee
* <br/>This program is protected by copyright laws.
* <br/>Program Name:
* <br/>Date:
* @author Yeeku.H.Lee kongyeeku@163.com
* @version 1.0
*/
class Person
{
private String name;
private int age;
public String toString()
{
return "Person [ name:" + name +
" , age:" + age + " ]";
}
}
public class FieldTest
{
public static void main(String[] args)
throws Exception
{
//創(chuàng)建一個(gè)Person對(duì)象
Person p = new Person();
//獲取Person類對(duì)應(yīng)的Class對(duì)象
Class<Person> personClazz = Person.class;
//獲取Person類名為name的屬性
//使用getDeclaredField,表明可獲取各種訪問(wèn)控制符的field
Field nameField = personClazz.getDeclaredField("name");
//設(shè)置通過(guò)反射訪問(wèn)該Field時(shí)取消訪問(wèn)權(quán)限檢查
nameField.setAccessible(true);
//調(diào)用set方法為p對(duì)象的指定Field設(shè)置值
nameField.set(p , "Yeeku.H.Lee");
//獲取Person類名為age的屬性
Field ageField = personClazz.getDeclaredField("age");
//設(shè)置通過(guò)反射訪問(wèn)該Field時(shí)取消訪問(wèn)權(quán)限檢查
ageField.setAccessible(true);
//調(diào)用setInt方法為p對(duì)象的指定Field設(shè)置值
ageField.setInt(p , 30);
System.out.println(p);
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -