我有一个列表,其中包含我的POJO类的所有setter。
public static void main(String[] args) throws Exception {
Method[] publicMethods = SampleClass.class.getMethods();
List<Method> setters = new ArrayList<>();
for (Method method : publicMethods){
if (method.getName().startsWith("set") && method.getParameterCount() == 1) {
setters.add(method);
}
}
}
不保证方法列表的文档顺序。 我的问题是我如何按字母顺序排列我的制定者名单?
答案 0 :(得分:2)
您需要自定义comparator:
Collections.sort(setters, new Comparator<Method> {
@Override
public int compare(Method a, Method b) {
return a.getName().compareTo(b.getName());
}
});
答案 1 :(得分:0)
你可以用java8这样做:
List<Method> setters = Arrays.asList( SampleClass.class.getMethods() )
.stream()
.filter(
e->e.getName().startsWith("set")
).sorted(
(a, b)->
a.getName()
.compareTo(b.getName())
).collect(Collectors.toList())