Java反射-使用Field类来操作类的成员变量(Field)

来源:互联网 发布:网络机柜检验报告 编辑:程序博客网 时间:2024/05/23 21:55

话不多说,请看代码。

package com.js.demo01;/** * Field类,代表的是类的属性(字段),也称为成员变量 */import java.lang.reflect.Field;public class ManageFields {public static void main(String[] args) {FieldTestClass obj1 = new FieldTestClass("name1",100);FieldTestClass obj2 = new FieldTestClass("name2", 200);System.out.println(compare(obj1, obj2));}private static FieldTestClass compare(FieldTestClass obj1,FieldTestClass obj2){try {Field field = obj1.getClass().getDeclaredField("age");Field field2 = obj2.getClass().getDeclaredField("age");int val1 = (int)field.get(obj1);int val2 = (int)field.get(obj2);if(val1<val2){return obj2;}else{return obj1;}} catch (Exception e) {e.printStackTrace();}return null;}}class FieldTestClass{String name;int age;public FieldTestClass(String name,int age){super();this.name = name;this.age = age;}@Overridepublic String toString() {return "FieldTestClass [name=" + name + ", age=" + age + "]";}}