Java如何基于反射获取对象属性信息
先建立一个类,有四种属性:
privateintid;
privateStringname;
privatebyteby;
privateshortst;
以下方法,创建一个对象,然后打印该对象的属性名字,属性值,和属性的类型:
publicclassT{
publicstaticvoidmain(String[]args)throwsException{
Useru=newUser();
u.setId(1);
u.setName("cc");
u.setBy((byte)1);
u.setSt((short)2);
getProperty(u);
}
/**
*获得一个对象各个属性的字节流
*/
@SuppressWarnings("unchecked")
publicstaticvoidgetProperty(ObjectentityName)throwsException{
Classc=entityName.getClass();
Fieldfield[]=c.getDeclaredFields();
for(Fieldf:field){
Objectv=invokeMethod(entityName,f.getName(),null);
System.out.println(f.getName()+"\t"+v+"\t"+f.getType());
}
}
/**
*获得对象属性的值
*/
@SuppressWarnings("unchecked")
privatestaticObjectinvokeMethod(Objectowner,StringmethodName,
Object[]args)throwsException{
ClassownerClass=owner.getClass();
methodName=methodName.substring(0,1).toUpperCase()
+methodName.substring(1);
Methodmethod=null;
try{
method=ownerClass.getMethod("get"+methodName);
}catch(SecurityExceptione){
}catch(NoSuchMethodExceptione){
return"can'tfind'get"+methodName+"'method";
}
returnmethod.invoke(owner);
}
}
打印结果如下:
id1int
nameccclassjava.lang.String
by1byte
st2short
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
热门推荐
10 新人红包祝福语简短精辟
11 幼师给毕业祝福语简短
12 生日高考祝福语妹妹简短
13 下飞机祝福语简短英文
14 元宵发客户祝福语简短
15 爸妈金婚文案祝福语简短
16 新郎朋友红包祝福语简短
17 虎年五一祝福语大全简短
18 出阁宴祝福语姐姐简短