Java SE之反射技术[Field](二)

如果对于反射的基本概念还不了解的请见上一帖子。本文仅谈fields的用法demo

/**
 * 
 * @author Zen Johnny
 *
 */
package com.cpms.test;

import java.lang.reflect.Field;
import java.util.List;

public class ReflectDemo {
	public static void reflect() {
		Person employee = new Person();
		Class<Person> clazz = (Class<Person>) employee.getClass();
		
		for(Field field : clazz.getDeclaredFields()) {//getDeclaredFields
			System.out.println(field + "【" + field.getName() + "】");
		}
		System.out.println("**********************************************");
		for(Field field : clazz.getFields()) {//getFields
			System.out.print(field + "【" + field.getName() + "】");
		}
		System.out.println("**********************************************");
		
	}
	
	public static void main(String args[]) {
		reflect();
	}
}

class Person{
	public String nickName;//public field
	private String realName;
	private int age;
	private List<String> friends;
	private double money; //no setter and getter
	
	public String getNickName() {
		return nickName;
	}
	public void setNickName(String nickName) {
		this.nickName = nickName;
	}
	public String getRealName() {
		return realName;
	}
	public void setRealName(String realName) {
		this.realName = realName;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public List<String> getFriends() {
		return friends;
	}
	public void setFriends(List<String> friends) {
		this.friends = friends;
	}
	
	@Override
	public String toString() {
		return "Person [nickName=" + nickName + ", realName=" + realName + ", age=" + age + ", friends=" + friends
				+ ", money=" + money + "]";
	}
}

输出:

  

所有属性:
public java.lang.String com.cpms.test.Person.nickName【nickName】 private java.lang.String com.cpms.test.Person.realName【realName】 private int com.cpms.test.Person.age【age】 private java.util.List com.cpms.test.Person.friends【friends】 private double com.cpms.test.Person.money【money】(无set个get的属性) ********************************************** 公共属性:
public java.lang.String com.cpms.test.Person.nickName【nickName】 **********************************************

  

原文地址:https://www.cnblogs.com/johnnyzen/p/7828536.html