Class类获取成员变量对象的方法
方法分类
返回单个公共成员变量对象 -------Field getField(String name)
返回单个成员变量对 ------- Field getDeclaredField(String name)
返回所有公共成员变量对象的数组 ------- Field[] getFields()
返回所有成员变量对象的数组 ------- Field[] getDeclaredFields()
代码演示
package com.itheima.myreflect4;
//学生类
public class Student {
public String name;
public int age;
public String gender;
private int money = 100;
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", gender='" + gender + '\'' +
", money=" + money +
'}';
}
}
反射获取成员变量并使用
//公共端
public class ReflectDemol {
public static void main(String[] args) {
getFieldl();
getField2();
getField3();
getField4();
}
//单个公共变量对象 Field getField(String name)
private static void getFieldl() {
try {
Class<?> clazz = Class.forName("com.itheima.myreflect4.Student");
Field name = clazz.getField("name");
System.out.println(name);
} catch (Exception e) {
e.printStackTrace();
}
}
//返回单个成员变量对象 Field getDeclaredField(String name)
private static void getField2() {
try {
Class<?> clazz = Class.forName("com.itheima.myreflect4.Student");
Field name = clazz.getDeclaredField("money");
System.out.println(name);
} catch (Exception e) {
e.printStackTrace();
}
}
//返回所有公共成员变量对象的数组 Field[] getFields()
private static void getField3() {
try {
Class<?> clazz = Class.forName("com.itheima.myreflect4.Student");
Field[] fields = clazz.getFields();
for (Field field : fields) {
System.out.println(field);
}
} catch (Exception e) {
e.printStackTrace();
}
}
//返回所有成员变量对象的数组 Field[] getDeclaredFields()
private static void getField4() {
try {
Class<?> calzz = Class.forName("com.itheima.myreflect4.Student");
Field[] fields = calzz.getDeclaredFields();
for (Field field : fields) {
System.out.println(field);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}