正文
通过java反射得到javabean的属性名称和值参考
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
通过java反射得到javabean的属性名称和值 Field fields[]=cHis.getClass().getDeclaredFields();//cHis 是实体类名称 String[] name=new String[fields.length]; Object[] value=new Object[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 class ModelClassHelper { 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("-----"); } return fieldHashMap; } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } public static String getTableName(String classPath) { try { Class cls = Class.forName(classPath); Method test=cls.getDeclaredMethod("getTableName" ); Object invoke = test.invoke(cls.newInstance()); return invoke.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类实例的属性值package org.apache.easframework.core.entity.impl;import java.lang.reflect.Field;public class TestEntity { private String code; private String name; public void setCode(String code) { this.code = code; } public String getCode() { return this.code; } public void setName(String name) { this.name = name; } public String getName() { return this.name; } public static void main(String[] args) throws SecurityException, ClassNotFoundException, IllegalArgumentException, IllegalAccessException { TestEntity obj = new TestEntity(); 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)); } }}