通过java反射得到javabean的属性名称和值

Field fields[]
=cHis.getClass().getDeclaredFields();//cHis 是实体类名称 String[] name=newString[fields.length];
Object[] value
=newObject[fields.length];try{
Field.setAccessible(fields,
true);for (int i = 0; i < name.length; i++) {
name[i]
=fields[i].getName();
System.out.println(name[i]
+ "-> ");
value[i]
= fields[i].get(cHis);//cHis 是实体类名称 System.out.println(value[i]);
}
}
catch(Exception e) {
e.printStackTrace();
}


通过反射获取类属性字段 以及 调用类方法 以下方法未测试应该可以
public classModelClassHelper {public static HashMap<String,Class>init(String classPath)
{
try{//"com.geocompass.model.STSTBPRPModel" HashMap<String,Class> fieldHashMap=new HashMap<String,Class>();
Class cls
= Class.forName(classPath); //com.geocompass.model.STSTBPRPModel Field[] fieldlist =cls.getDeclaredFields();for (int i = 0; i < fieldlist.length; i++) {
Field fld
=fieldlist[i];
fieldHashMap.put(fld.getName(), fld.getType());
//System.out.println("name = " + fld.getName());//System.out.println("decl class = " + fld.getDeclaringClass());//System.out.println("type = " + fld.getType());//System.out.println("-----"); }returnfieldHashMap;
}
catch(ClassNotFoundException e) {//TODO Auto-generated catch block e.printStackTrace();
}
return null;
}
public staticString getTableName(String classPath)
{
try{
Class cls
=Class.forName(classPath);
Method test
=cls.getDeclaredMethod("getTableName");
Object invoke
=test.invoke(cls.newInstance());returninvoke.toString();//cls.asSubclass(TabModel.class); } catch(ClassNotFoundException e) {//TODO Auto-generated catch block e.printStackTrace();
}
catch(SecurityException e) {//TODO Auto-generated catch block e.printStackTrace();
}
catch(NoSuchMethodException e) {//TODO Auto-generated catch block e.printStackTrace();
}
catch(IllegalArgumentException e) {//TODO Auto-generated catch block e.printStackTrace();
}
catch(IllegalAccessException e) {//TODO Auto-generated catch block e.printStackTrace();
}
catch(InvocationTargetException e) {//TODO Auto-generated catch block e.printStackTrace();
}
catch(InstantiationException e) {//TODO Auto-generated catch block e.printStackTrace();
}
return "";
}}

利用反射技术动态获取任意Java类实例的属性值
packageorg.apache.easframework.core.entity.impl;importjava.lang.reflect.Field;public classTestEntity {privateString code;privateString name;public voidsetCode(String code)
{
this.code =code;
}
publicString getCode()
{
return this.code;
}
public voidsetName(String name)
{
this.name =name;
}
publicString getName()
{
return this.name;
}
public static void main(String[] args) throwsSecurityException, ClassNotFoundException, IllegalArgumentException, IllegalAccessException
{
TestEntity obj
= newTestEntity();
obj.setName(
"name value");
obj.setCode(
"code value");
Field[] fds
=Class.forName
(
"org.apache.easframework.core.entity.impl.TestEntity").getDeclaredFields();

System.out.println(fds.length);
for(int i=0;i<fds.length;i++)
{
System.out.println(fds[i].get(obj));

}
}

}

 

标签: none


阿里云优惠主机

添加新评论

免责声明
本博客部分内容来自于互联网,不代表作者的观点和立场,如若侵犯到您的权益,请联系[email protected]。我们会在24小时内进行删除。