可能重复:
Java Reflection: Getting fields and methods in declaration order
Java. Get declared methods in order they apear in source code
假设我有这个课程
可以按顺序采用getters方法吗?
public class ClassA {
private String name;
private Integer number;
private Boolean bool;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getNumber() {
return number;
}
public void setNumber(Integer number) {
this.number = number;
}
public Boolean getBool() {
return bool;
}
public void setBool(Boolean bool) {
this.bool = bool;
}
}
我试过这个..
for (Method method : ClassA.class.getDeclaredMethods()) {
if (!(method.getReturnType().toString().equals("void"))) {
method.invoke(obj, new Object[0])));
}
}
我从文档中得到了这个
...返回的数组中的元素没有排序,也没有任何特定的顺序......
那么......就是这样吗?存在一些替代方案,或者我只需要实现一些东西?
答案 0 :(得分:6)
您可以为每个方法添加自己的@annotation,其中包含一个数字。然后获取所有getter方法,并使用自定义排序器对它们进行排序,具体取决于使用Collections.sort()
传递给注释的数字。
例如:
@SortedMethod(100)
public String getName()
{
return name;
}
@SortedMethod(200)
public String getNumber()
{
return number;
}