Java - 将 List<Field> 解析为字符串

标签 java spring reflection

我正在尝试将 List<Field>转换为简单的字符串,但我不确定如何将它们从数组中解析为单个 String变量。

我当前正在使用一种方法,该方法通过使用 getDeclaredFields() 的类。方法并将它们输出到数组中。

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

    Class<?> i = type;
    while (i != null && i != Object.class) {
        Collections.addAll(result, i.getDeclaredFields());
        i = i.getSuperclass();
    }

    for(Field temp : result) {
        System.out.println(temp);
    }

    return result;
}

我输出时得到的结果是

[private int com.gen.e.ric.report.domain.TestCount.count,
 private java.lang.String com.gen.e.ric.report.domain.Test.facility, 
 private java.lang.String com.gen.e.ric.report.domain.Test.technology,
 private java.lang.String com.gen.e.ric.report.domain.Test.component, 
 private java.util.List com.gen.e.ric.report.domain.Test.etestStats, 
 private java.util.Date com.gen.e.ric.report.domain.Test.startDate, 
 private java.util.Date com.gen.e.ric.report.domain.Test.endDate]

我想要得到的只是一个长字符串

int, String, String, List, Date, Date

有什么可以提供的帮助吗?顺便说一句,使用反射。 谢谢。

最佳答案

您只想输出每个Field的类型,所以这样做:

for(Field temp : result) {
    System.out.println(temp.getType());
}

或者将其放入字符串中:

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

关于Java - 将 List<Field> 解析为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55117866/

相关文章:

generics - 是否可以获取泛型类型的类型名称?

java - 如何从github源代码下载jar文件?

java - 除了 JAR 文件之外,还有哪些其他选项可以部署 Java 应用程序?

java - 在 Hibernate Envers 中将附加数据传递给 Custom RevisionEntity 的方法?

java - 处理 XML 时出错 'org.springframework.beans.factory.xml.XmlReaderContext.getEnvironment()Lorg/springframework/core/env/Environment;'

c# - 如何使用反射分析 C# 中的特殊类型约束?

c# - 使用反射来识别具有给定装饰器的属性

java - SpringBoot JPA data.sql失败

java - JAXB "rename"子类中父类的属性

java - Spring 4 中有多个@ComponentScan?