欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java如何基于反射獲取對(duì)象屬性信息

 更新時(shí)間:2020年10月19日 15:35:39   作者:cuisuqiang  
這篇文章主要介紹了Java如何基于反射獲取對(duì)象屬性信息,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

先建立一個(gè)類(lèi),有四種屬性:

private int id;
private String name;
private byte by;
private short st;

以下方法,創(chuàng)建一個(gè)對(duì)象,然后打印該對(duì)象的屬性名字,屬性值,和屬性的類(lèi)型:

public class T {
	public static void main(String[] args) throws Exception {
		User u = new User();
		u.setId(1);
		u.setName("cc");
		u.setBy((byte)1);
		u.setSt((short)2);
		getProperty(u);
	}
	/**
	 * 獲得一個(gè)對(duì)象各個(gè)屬性的字節(jié)流
	 */
	@SuppressWarnings("unchecked")
	public static void getProperty(Object entityName) throws Exception {
		Class c = entityName.getClass();
		Field field[] = c.getDeclaredFields();
		for (Field f : field) {
			Object v = invokeMethod(entityName, f.getName(), null);
			System.out.println(f.getName() + "\t" + v + "\t" + f.getType());
		}
	}
	/**
	 * 獲得對(duì)象屬性的值
	 */
	@SuppressWarnings("unchecked")
	private static Object invokeMethod(Object owner, String methodName,
			Object[] args) throws Exception {
		Class ownerClass = owner.getClass();
		methodName = methodName.substring(0, 1).toUpperCase()
				+ methodName.substring(1);
		Method method = null;
		try {
			method = ownerClass.getMethod("get" + methodName);
		} catch (SecurityException e) {
		} catch (NoSuchMethodException e) {
			return " can't find 'get" + methodName + "' method";
		}
		return method.invoke(owner);
	}
}

打印結(jié)果如下:

id 1 int
name cc class java.lang.String
by 1 byte
st 2 short

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論