相关疑难解决方法(0)

Java反射:按声明顺序获取字段和方法

有没有办法按照声明的顺序使用反射获取类声明的字段(和方法)?根据该文件,方法和字段的顺序返回的getFields(),getDeclaredFields()等是不确定的.

使用Java反射中建议的注释可以指定像索引之类的东西:类字段和方法的顺序是否标准化?

有没有更好的选择,即不必手动指定索引?

现在在你问我需要什么之前:我们有一个方法,它将一个非常大的数据结构作为输入,并对其进行冗长的计算.为了创建单元测试,我们创建了一个方法,该方法接受输入对象和输出实例,并创建Java源代码(设置输入,调用计算方法,然后断言正确的结果)作为输出.当字段按声明顺序编写时,此代码更易读.

java reflection junit

28
推荐指数
3
解决办法
1万
查看次数

如何获取方法的行号?

是否可以使用反射或其他魔法获取方法的行号?
如果方法在当前Stacktrace内,则可能.使用Thread.currentThread().getStackTrace(),可以获得一个的行号StackTraceElement.但是如果我只有java.lang.reflect.Method对象,我该怎么办?

我发现这个,对于classes-> 如何从java.lang.Class对象获取源文件名/行号,但它对方法没用.

java reflection

15
推荐指数
2
解决办法
9851
查看次数

是否可以使用反射来获取getMethods?

可能的重复:
Java反射:按声明顺序获取字段和方法
Java.获取声明的方法,以便它们在源代码中出现

假设我有这门课

是否可以按顺序采用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)

java reflection

5
推荐指数
1
解决办法
4064
查看次数

标签 统计

java ×3

reflection ×3

junit ×1