[java]代码库
1.
package s0505反射读取属性值;
//好处,不论多少属性,我用13行代码可以代替所有的get语句
public class Student {
private String name;
private String sex;
private String grade;
private String age;
public Student()
{}
public Student(String name, String sex, String grade, String age) {
this.name = name;
this.sex = sex;
this.grade = grade;
this.age = age;
}
public String get(String s)
{
String value=null;
try {
//关键代码******************************************************************
value=(String)this.getClass().getDeclaredField(s).get(this);// getDeclaredField(xx).get(yy) 得到yy类的xx属性的值
//关键代码******************************************************************
} catch (IllegalArgumentException | IllegalAccessException
| NoSuchFieldException | SecurityException e) {
e.printStackTrace();
}
return value;
}
}
2.
package s0505反射读取属性值;
public class Test {
public static void main(String[] args){
Student a=new Student("张三","男","100","29");
Student b=new Student("张四","女","99","21");
Student c=new Student("张五","男","98","22");
System.out.println(a.get("name")+" "+a.get("sex")+" "+a.get("grade")+" "+a.get("age"));
System.out.println(b.get("name")+" "+b.get("sex")+" "+b.get("grade")+" "+b.get("age"));
System.out.println(c.get("name")+" "+c.get("sex")+" "+c.get("grade")+" "+c.get("age"));
}
}