首先我们有一个对象类
package com.xuzihui.ref;
public class Student {
public Student() {
}
private int id;
private String name;
private int math;
private int english;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getMath() {
return math;
}
public void setMath(int math) {
this.math = math;
}
public int getEnglish() {
return english;
}
public void setEnglish(int english) {
this.english = english;
}
public Student(int id, String name, int math, int english) {
super();
this.id = id;
this.name = name;
this.math = math;
this.english = english;
}
}
通过Java反射获得对象中的字段名和字段对应的值
package com.xuzihui.ref;
import java.lang.reflect.Field;
public class App {
public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException {
Student st = new Student(1,"zhuangsan",78,98);
Field[] fields = st.getClass().getDeclaredFields();
for(int i = 0 ; i < fields.length ; i++) {
//设置是否允许访问,不是修改原来的访问权限修饰词。
fields[i].setAccessible(true);
System.out.println(fields[i].getName()+":"+fields[i].get(st));
}
}
}
结果显示: