我正在使用 JDI 调试程序。我正在尝试更改某个 ObjectReference 中字段的值。我有 Field 对象,因为我可以通过它找到它
ObjectReference.referencetype().allFields()
但是,我无法使用修改该字段
ObjectReference.setValue(Field paramField, Value paramValue)
因为这仅适用于此类或其直接超类中的字段 - 不包括层次结构中的更高类。
是否可以更改比直接超类更高的类中的字段值?如果是这样,我将不胜感激任何帮助!
谢谢,
院长
编辑:我在调用 ObjectReference.setValue() 的行中收到以下错误:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at com.sun.tools.jdi.MirrorImpl.validateMirror(MirrorImpl.java:49)
at com.sun.tools.jdi.ObjectReferenceImpl.setValue(ObjectReferenceImpl.java:214)