Field类,代表的是类的属性,也称成员变量,Field对象通过Class的getDeclareField()或getDeclaredFields()方法获取,处于java.lang.reflect包。
import java.lang.reflect.Field;
/**
* Created by wjz on 2017/3/12.
*/
class FieldTestClass {
String name;
int age;
//构造方法
public FieldTestClass(String name, int age) {
super();
this.name = name;
this.age = age;
}
}
public class FieldTest {
public static void main(String[] args) {
FieldTestClass obj1 = new FieldTestClass("hello1", 100);
FieldTestClass obj2 = new FieldTestClass("hello2", 300);
System.out.println(compare(obj1, obj2) + "is bigger");
}
private static FieldTestClass compare(FieldTestClass obj1, FieldTestClass obj2) {
try {
//用两种方法获取一个Field对象
Field field = obj1.getClass().getDeclaredField("age");
field = FieldTestClass.class.getDeclaredField("age");
//获得两个对象的age的值
int val1 = (Integer) field.get(obj1);
int val2 = (Integer) field.get(obj2);
//进行比较
if (val1 > val2) {
return obj1;
} else {
return obj2;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}