【问题标题】:How to get all field's title of object如何获取所有字段的对象标题
【发布时间】:2020-04-11 22:10:15
【问题描述】:

我需要写一个方法。含义是将任何对象(实体等)作为参数发送,并将所有字段名称作为返回值。类似的东西。

方法示例

public String getFieldsTitle(Object obj){

   return obj.getListOfFields();

}

实体例如:

public class Human{
private String name;

private String fam;

private String patr;

}

方法的期望值

[姓名,家族,patr]

【问题讨论】:

  • 我认为它是 java 但并不明显。请用相关语言替换“字符串”标签

标签: java string object reflection field


【解决方案1】:

您可以从您的getFieldsTitle 方法返回List<String> 的列表,然后打印该列表。

使用 Java 8

public static List<String> getFieldsTitle(Object obj){
    return Arrays.stream(obj.getClass().getDeclaredFields())
            .map(Field::getName)
            .collect(Collectors.toList());
}

有两种方法

// returns inherited members but not private members.
Field[] fields = ClassName.class.getFields(); 

// returns all members including private members but not inherited members.
Field[] fields = ClassName.class.getDeclaredFields(); 

更多详情请见oracle docs of classMembers

【讨论】:

    猜你喜欢
    • 2023-01-13
    • 2022-12-01
    • 2018-07-20
    • 1970-01-01
    • 2011-07-19
    • 2019-03-11
    • 1970-01-01
    • 2019-04-27
    • 2017-05-31
    相关资源
    最近更新 更多