java使用反射訪問成員變量的值示例
本文實例講述了java使用反射訪問成員變量的值。分享給大家供大家參考,具體如下:
一 代碼
import java.lang.reflect.*;
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)建一個Person對象
Person p = new Person();
// 獲取Person類對應的Class對象
Class<Person> personClazz = Person.class;
// 獲取Person的名為name的成員變量
// 使用getDeclaredField()方法表明可獲取各種訪問控制符的成員變量
Field nameField = personClazz.getDeclaredField("name");
// 設置通過反射訪問該成員變量時取消訪問權限檢查
nameField.setAccessible(true);
// 調用set()方法為p對象的name成員變量設置值
nameField.set(p , "Yeeku.H.Lee");
// 獲取Person類名為age的成員變量
Field ageField = personClazz.getDeclaredField("age");
// 設置通過反射訪問該成員變量時取消訪問權限檢查
ageField.setAccessible(true);
// 調用setInt()方法為p對象的age成員變量設置值
ageField.setInt(p , 30);
System.out.println(p);
}
}
二 運行
E:\Java\瘋狂java講義\codes\18\18.4>java FieldTest
Person[name:Yeeku.H.Lee , age:30 ]
更多java相關內容感興趣的讀者可查看本站專題:《Java面向對象程序設計入門與進階教程》、《Java數(shù)據(jù)結構與算法教程》、《Java操作DOM節(jié)點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設計有所幫助。
相關文章
MyBatis?handleResultSet結果集解析過程示例
這篇文章主要為大家介紹了MyBatis?handleResultSet結果集解析過程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02
Spring boot工具類靜態(tài)屬性注入及多環(huán)境配置詳解
這篇文章主要為大家詳細介紹了Spring boot工具類靜態(tài)屬性注入,及多環(huán)境配置詳解,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-04-04
Java面試重點中的重點之Elasticsearch核心原理
ElasticSearch是一個基于Lucene的搜索引擎,是用Java語言開發(fā)的,能夠達到實時搜索,穩(wěn)定,可靠,快速,安裝使用方便,作為Apache許可條款下的開放源碼發(fā)布,是一種流行的企業(yè)級搜索引擎,是最受歡迎的企業(yè)搜索引擎2022-01-01
Java使用正則表達式檢索、替換String中特定字符和正則表達式的一切
這篇文章主要給大家介紹了關于Java使用正則表達式檢索、替換String中特定字符和正則表達式的一切,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-09-09
spring boot + mybatis如何實現(xiàn)數(shù)據(jù)庫的讀寫分離
這篇文章主要給大家介紹了關于spring boot + mybatis如何實現(xiàn)數(shù)據(jù)庫的讀寫分離的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用spring boot具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-09-09

