首页 > 编程 > Java > 正文

java 反射通过get方法获得属性值

2019-11-06 06:53:50
字体:
来源:转载
供稿:网友
1、根据对象获得所有字段的值public static void method(Object obj) {     try {          Class clazz = obj.getClass();          Field[] fields = obj.getClass().getDeclaredFields();//获得属性          for (Field field : fields) {               PRopertyDescriptor pd = new PropertyDescriptor(field.getName(),                         clazz);               Method getMethod = pd.getReadMethod();//获得get方法               Object o = getMethod.invoke(obj);//执行get方法返回一个Object               System.out.println(o);          }     } catch (SecurityException e) {          e.printStackTrace();     } catch (IllegalArgumentException e) {          e.printStackTrace();     } catch (IntrospectionException e) {          e.printStackTrace();     } catch (IllegalaccessException e) {          e.printStackTrace();     } catch (InvocationTargetException e) {          e.printStackTrace();     }}2、通过对象和具体的字段名字获得字段的值public static void method(Object obj, String filed) {     try {          Class clazz = obj.getClass();          PropertyDescriptor pd = new PropertyDescriptor(filed, clazz);          Method getMethod = pd.getReadMethod();//获得get方法          if (pd != null) {               Object o = getMethod.invoke(obj);//执行get方法返回一个Object               System.out.println(o);          }     } catch (SecurityException e) {          e.printStackTrace();     } catch (IllegalArgumentException e) {          e.printStackTrace();     } catch (IntrospectionException e) {          e.printStackTrace();     } catch (IllegalAccessException e) {          e.printStackTrace();     } catch (InvocationTargetException e) {          e.printStackTrace();     }}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表