有没有办法按照声明的顺序使用反射获取类声明的字段(和方法)?根据该文件,方法和字段的顺序返回的getFields(),getDeclaredFields()等是不确定的.
使用Java反射中建议的注释可以指定像索引之类的东西:类字段和方法的顺序是否标准化?
有没有更好的选择,即不必手动指定索引?
现在在你问我需要什么之前:我们有一个方法,它将一个非常大的数据结构作为输入,并对其进行冗长的计算.为了创建单元测试,我们创建了一个方法,该方法接受输入对象和输出实例,并创建Java源代码(设置输入,调用计算方法,然后断言正确的结果)作为输出.当字段按声明顺序编写时,此代码更易读.
是否可以使用反射或其他魔法获取方法的行号?
如果方法在当前Stacktrace内,则可能.使用Thread.currentThread().getStackTrace(),可以获得一个的行号StackTraceElement.但是如果我只有java.lang.reflect.Method对象,我该怎么办?
我发现这个,对于classes-> 如何从java.lang.Class对象获取源文件名/行号,但它对方法没用.
假设我有这门课
是否可以按顺序采用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;
}
Run Code Online (Sandbox Code Playgroud)
}
我试过这个..
for (Method method : ClassA.class.getDeclaredMethods()) {
if (!(method.getReturnType().toString().equals("void"))) {
method.invoke(obj, new Object[0]))); …Run Code Online (Sandbox Code Playgroud)