反映中的NoSuchField异常

时间:2017-01-29 04:43:05

标签: java reflection

我编写了一个代码来使用反射来获取对象属性的值,但是它给出了nosuchfield异常。包含id字段的类是

public class PartialSettBank {

// empty constructor
public PartialSettBank() {
}


protected Integer id;

protected String bankCode;

protected String bankName;

protected String description;

protected Integer isDeleted = 0;

protected Integer isPosted = 1;

protected Integer active;

protected LocalDateTime created;

protected String createdBy;

protected LocalDateTime updated;

protected String updatedBy;

------getter setter()
}

我想使用反射

访问id字段
Field id = object.getClass().getDeclaredField("id");
id.setAccessible(true); 

这个对象来自'PartialSettBank'类。对象包含id字段。我检查了它。为什么它会给出这样的错误我不知道。

1 个答案:

答案 0 :(得分:0)

将您的代码更改为:

Field id = PartialSettBank.class.getDeclaredField("id");
id.setAccessible(true);

然后,您正在使用的对象是PartialSettBank的直接实例还是子类的实例并不重要。您仍然可以将Field对象与子类的实例或PartialSettBank的直接实例本身一起使用。