1. 程式人生 > >通過java反射獲取物件的欄位名和欄位值

通過java反射獲取物件的欄位名和欄位值

直接上Demo:

package aaa;

import java.lang.reflect.Field;

public class test {
	public static void main(String[] args) throws Exception{
		aa a = new aa(11,"小明");
		//獲取class物件a中宣告的所有欄位
		Field[] field = a.getClass().getDeclaredFields();
		for(int i=0;i<field.length;i++){
			//設定是否允許訪問,不是修改原來的訪問許可權修飾詞。
			field[i].setAccessible(true);
			//返回輸出指定物件a上此 Field表示的欄位名和欄位值
			System.out.println(field[i].getName()+":"+field[i].get(a));
		}
	}
	
	public static class aa{
		private int id;
		private String name;
		public aa(){
			
		}
		public aa(int id,String name){
			this.id = id;
			this.name = name;
		}
		
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		public int getId() {
			return id;
		}
		public void setId(int id) {
			this.id = id;
		}
	}
}