java获取实体类的属性和值
package com.jackie.day11;
 import java.lang.reflect.Field;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.Date;
 /**
 ?* Java通過實例得到實體類中的屬性和方法
 ?* @author Administrator
 ?*
 ?*/
 public class ReflectTest {
 ? ? public static void main(String[] args)
? ? ? ? ? ? throws IllegalArgumentException, IllegalAccessException, InvocationTargetException {
? ? ? ? Student student = new Student();
? ? ? ? student.setBirthday(new Date());
 ? ? ? ? student.setGender(false);
 ? ? ? ? student.setId(3);
 ? ? ? ? student.setName("王五");
 ? ? ? ? student.setScore(99);
 ? ? ? ? // 通過實例得到類
 ? ? ? ? @SuppressWarnings("rawtypes")
 ? ? ? ? Class studentClass = (Class) student.getClass(); // studentClass
 ? ? ? ? /*
 ? ? ? ? ?* 得到類中的所有屬性集合
 ? ? ? ? ?*/
 ? ? ? ? Field[] field = studentClass.getDeclaredFields();
 ? ? ? ? for (int i = 0; i < field.length; i++) {
 ? ? ? ? ? ? Field f = field[i];
 ? ? ? ? ? ? int size = field.length;// 屬性個數
 ? ? ? ? ? ? f.setAccessible(true); // 設置些屬性是可以訪問的
 ? ? ? ? ? ? String type = f.getType().toString();// 得到此屬性的類型
 ? ? ? ? ? ? String key = f.getName();// key:得到屬性名
 ? ? ? ? ? ? Object value = null;// 得到此屬性的值
 ? ? ? ? ? ? value = f.get(student);
 ? ? ? ? ? ? //System.out.println("屬性個數:" + size + "\t 類型:" + type + "\t 屬性名:" + key + "\t 屬性值 : " + value);
 ? ? ? ? ? ? if (key.endsWith("name")) {
 ? ? ? ? ? ? ? ? f.set(student, "張三");// 給屬性設值
 ? ? ? ? ? ? ? ? System.out.println(student);
 ? ? ? ? ? ? } else if (key.endsWith("id")) {
 ? ? ? ? ? ? ? ? f.set(student, 6);
 ? ? ? ? ? ? ? ? System.out.println(student);
 ? ? ? ? ? ? } else if (key.endsWith("gender")) {
 ? ? ? ? ? ? ? ? f.set(student, true);
 ? ? ? ? ? ? ? ? System.out.println(student);
 ? ? ? ? ? ? } else if (key.endsWith("birthday")) {
 ? ? ? ? ? ? ? ? f.set(student, new Date());
 ? ? ? ? ? ? ? ? System.out.println(student);
 ? ? ? ? ? ? } else if (key.endsWith("score")) {
 ? ? ? ? ? ? ? ? f.set(student, 44);
 ? ? ? ? ? ? ? ? System.out.println(student);
 ? ? ? ? ? ? }
 ? ? ? ? }
 ? ? ? ? /*
 ? ? ? ? ?* 得到類中所有方法的集合
 ? ? ? ? ?*/
 ? ? ? ? Method[] methods = studentClass.getMethods();
 ? ? ? ? for (int i = 0; i < methods.length; i++) {
 ? ? ? ? ? ? Method method = methods[i];
 ? ? ? ? ? ? if (method.getName().startsWith("get")) {
 ? ? ? ? ? ? ? ? System.out.print("類中的get方法:" + method.getName() + "\t");
 ? ? ? ? ? ? ? ? System.out.println("get方法的值:" + method.invoke(student));
 ? ? ? ? ? ? }
 ? ? ? ? }
 ? ? }
 }
 class Student {
 ? ? private String name;
 ? ? private Integer id;
 ? ? private boolean gender;// true:男;false:女
 ? ? private Date birthday;
? ? private int score;
? ? public Student() {
 ? ? }
 ? ? public Student(Integer id, String name, int score, Date birthday, boolean gender) {
 ? ? ? ? super();
 ? ? ? ? this.id = id;
 ? ? ? ? this.name = name;
 ? ? ? ? this.score = score;
 ? ? ? ? this.birthday = birthday;
 ? ? ? ? this.gender = gender;
? ? }
? ? public Integer getId() {
 ? ? ? ? return id;
? ? }
? ? public void setId(Integer id) {
 ? ? ? ? this.id = id;
 ? ? }
 ? ? public String getName() {
 ? ? ? ? return name;
 ? ? }
 ? ? public void setName(String name) {
 ? ? ? ? this.name = name;
 ? ? }
 ? ? public int getScore() {
 ? ? ? ? return score;
 ? ? }
 ? ? public void setScore(int score) {
 ? ? ? ? this.score = score;
? ? }
? ? public Date getBirthday() {
 ? ? ? ? return birthday;
 ? ? }
 ? ? public void setBirthday(Date birthday) {
 ? ? ? ? this.birthday = birthday;
 ? ? }
 ? ? public boolean isGender() {
 ? ? ? ? return gender;
 ? ? }
 ? ? public void setGender(boolean gender) {
 ? ? ? ? this.gender = gender;
 ? ? }
 ? ? @Override
 ? ? public String toString() {
 ? ? ? ? return "Student [id=" + id + ", name=" + name + ", score=" + score + ", birthday=" + birthday + ", gender="
 ? ? ? ? ? ? ? ? + gender + "]";
 ? ? }
 }
總結
以上是生活随笔為你收集整理的java获取实体类的属性和值的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 关键帧 关于decode_one_fr
 - 下一篇: 为什么借助开源学习是最有效的?