是否可以按排序方式获取类字段?

时间:2016-01-15 15:14:25

标签: java arrays class sorting

可能是一个愚蠢的问题,但是...... From the docs,我知道在java中我在getFields()上有一个名为java.lang.Class<T>的方法,它将返回{{1}的数组对象,我也知道结果不会以任何方式排序。

  

返回一个包含反映所有内容的Field对象的数组   由此表示的类或接口的可访问公共字段   类对象。返回的数组中的元素未排序   没有任何特定的顺序。此方法返回一个数组   如果类或接口没有可访问的公共字段,则为0,或者   如果它表示数组类,基本类型或void。

现在如果我想要对这些字段进行排序怎么办?有没有一种方法可以退还给我?或者我必须自己排序?

来自this question我知道我可以使用Field对它们进行排序。我只是想知道自己是否真的需要做这个额外的步骤。

1 个答案:

答案 0 :(得分:2)

基于属性对对象数组进行排序可以写成一行:

Field[] fields = String.class.getDeclaredFields();
Arrays.sort(fields, comparing(Field::getName));

使用静态导入:import static java.util.Comparator.comparing;