可能是一个愚蠢的问题,但是...... From the docs,我知道在java中我在getFields()
上有一个名为java.lang.Class<T>
的方法,它将返回{{1}的数组对象,我也知道结果不会以任何方式排序。
返回一个包含反映所有内容的Field对象的数组 由此表示的类或接口的可访问公共字段 类对象。返回的数组中的元素未排序 没有任何特定的顺序。此方法返回一个数组 如果类或接口没有可访问的公共字段,则为0,或者 如果它表示数组类,基本类型或void。
现在如果我想要对这些字段进行排序怎么办?有没有一种方法可以退还给我?或者我必须自己排序?
来自this question我知道我可以使用Field
对它们进行排序。我只是想知道自己是否真的需要做这个额外的步骤。
答案 0 :(得分:2)
基于属性对对象数组进行排序可以写成一行:
Field[] fields = String.class.getDeclaredFields();
Arrays.sort(fields, comparing(Field::getName));
使用静态导入:import static java.util.Comparator.comparing;
。