通過反射獲取傳遞的物件的屬性及值(key->value)
阿新 • • 發佈:2020-12-27
實體類自定義
我的實體類Student中有一下私有屬性
private Integer Id;
private String Name;
private String Password;
private Date Birthday;
以下是工具類
主體程式碼如下
public class StudentUtil {
public static void doStu(Student student){
//通過傳遞的student實體類物件作為引數反射獲取類資訊
Class studentClass = student.getClass();
//獲得某個類的所有宣告的欄位
Field[] fields = studentClass.getDeclaredFields();
for (Field field : fields) {
//設定true訪問實體類中私有屬性
field.setAccessible(true);
//列印實體類的私有屬性和對應實參
try {
//注意要獲取實體類屬性對應具體引數需要field.get(student)將傳遞的物件傳進去
//field.getName()獲取實體類中定義的私有引數
System.out.println(field.getName()+"="+field.get(student));
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
}
測試類
public class TestStudent {
public static void main(String[] args) {
Student student = new Student(1,"張三", "123456", new Date());
StudentUtil.doStu(student);
}
}
測試結果