Java如何基于反射獲取對象屬性信息
先建立一個類,有四種屬性:
private int id;
private String name;
private byte by;
private short st;
以下方法,創(chuàng)建一個對象,然后打印該對象的屬性名字,屬性值,和屬性的類型:
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); } /** * 獲得一個對象各個屬性的字節(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()); } } /** * 獲得對象屬性的值 */ @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
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
springboot內(nèi)置的tomcat支持最大的并發(fā)量問題
這篇文章主要介紹了springboot內(nèi)置的tomcat支持最大的并發(fā)量問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03Javaweb監(jiān)聽器實例之統(tǒng)計在線人數(shù)
這篇文章主要為大家詳細介紹了Javaweb監(jiān)聽器實例之統(tǒng)計在線人數(shù),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-11-11Java的Socket實現(xiàn)長連接以及數(shù)據(jù)的發(fā)送和接收方式
這篇文章主要介紹了Java的Socket實現(xiàn)長連接以及數(shù)據(jù)的發(fā)送和接收方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09基于javamelody監(jiān)控springboot項目過程詳解
這篇文章主要介紹了基于javamelody監(jiān)控springboot項目過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11SpringBoot整合mybatis-generator-maven-plugin的方法
這篇文章主要介紹了SpringBoot整合mybatis-generator-maven-plugin,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11Spring Cloud負載均衡及遠程調(diào)用實現(xiàn)詳解
這篇文章主要介紹了Spring Cloud負載均衡及遠程調(diào)用實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08