zoukankan      html  css  js  c++  java
  • 【Java】+反射1+获取属性/成员变量 的名称及类型

    扩展链接:【Java】+反射2+设置属性/成员变量 的值

    封装的方法(可直接用)

     1     /**
     2      * 功能:通过反射获取指定类的属性名称及属性类型
     3      *
     4      * @param clazz 目标类
     5      * @return 返回一个属性类型及属性名称(左:类型  右:名称)
     6      */
     7     static public List<Pair<Object, Object>> getClassFielddNameAndType(Class clazz) {
     8         Field[] fields = clazz.getDeclaredFields();
     9         List<Pair<Object, Object>> ofField = new ArrayList<>();
    10         for (Field field : fields) {
    11             String[] str = field.getType().getName().split("\.");
    12             System.out.println(String.format("属性:%s %s", str[str.length - 1], field.getName()));
    13             ofField.add(Pair.of(str[str.length - 1], field.getName()));
    14         }
    15         return ofField;
    16     }
    View Code

    1、目标类

    2、获取目标群类中的属性及属性的类型

    3、代码

     1     @Test
     2     public void testInterfaceParam() {
     3         List<Pair<Object, Object>> ofFields = getClassFielddNameAndType(FileCircleRequest.class);
     4         for (int i = 0; i < ofFields.size(); i++) {
     5             System.out.println(String.format("%s %s", ofFields.get(i).getLeft(),ofFields.get(i).getRight()));
     6         }
     7     }
     8 
     9     /**
    10      * 功能:通过反射获取指定类的属性名称及属性类型
    11      *
    12      * @param clazz
    13      */
    14     static public List<Pair<Object,Object>> getClassFielddNameAndType(Class clazz) {
    15         Field[] fields = clazz.getDeclaredFields();
    16         List<Pair<Object,Object>> ofField = new ArrayList<>();
    17         for (Field field : fields) {
    18             String[] str = field.getType().getName().split("\.");
    19             System.out.println(String.format("属性:%s %s", str[str.length - 1], field.getName()));
    20             ofField.add(Pair.of(str[str.length-1],field.getName()));
    21         }
    22 
    23         return ofField;
    24     }
  • 相关阅读:
    vim 高级使用技巧第二篇
    你所不知道的Html5那些事(一)
    linux设备驱动第三篇:如何实现一个简单的字符设备驱动
    Android Metro风格的Launcher开发系列第二篇
    「BZOJ3123」[SDOI2013]森林
    【模板】左偏树
    「luogu3157」[CQOI2011]动态逆序对
    「luogu3567」[POI2014]KUR-Couriers
    【模板】二逼平衡树
    「luogu3313」[SDOI2014]旅行
  • 原文地址:https://www.cnblogs.com/danhuai/p/12041832.html
Copyright © 2011-2022 走看看