Java-获取List <class>的内容

时间:2019-03-14 09:15:20

标签: java spring reflection

我试图从我的域类中获取所有变量,并将它们全部输出到单个字符串中,但是我的大多数类中都有一个列表。我的代码现在只输出列表,而不是其内容。

public static List<Field> getInheritedPrivateFields(Class<?> type) {
    List<Field> result = new ArrayList<Field>();

    Class<?> i = type;
    while (i != null && i != Object.class) {
        for (Field field : i.getDeclaredFields()) {
            if (!field.isSynthetic()) {
                result.add(field);
            }
        }
        i = i.getSuperclass();
    }

    String names = result.stream().map(e->e.getName()).collect(Collectors.joining(", "));
    String types = result.stream().map(e->e.getType().getSimpleName().toUpperCase()).collect(Collectors.joining(", "));

    System.out.println(names + ", " + types);

    return result;
}

当前输出

count, facility, technology, component, testStats, INT, STRING, STRING, STRING, LIST

我需要扩展列表以使其输出

facility, technology, name, count, test, failCriteria, description, target
STRING, STRING, STRINNG, INTEGER, STRING, STRING, STRING, REAL

我现在的想法是,在我的for循环中,我可以添加一个IF语句来检查该字段是否为List,然后如果要检查参数是否为true并在该类上再次循环,以便将其输出所有连接到初始类的变量。

有没有一种方法可以在List中获取类的值?还是有更好的方法来做到这一点?

0 个答案:

没有答案