有没有办法读取像eclipse这样的私有变量呢?

时间:2017-12-26 12:03:50

标签: java

我在下面的图片中,eclipse告诉我,我的" root"变量有一个名为" localSymbolTable"的嵌套变量。它有另一个名为" data"。

的嵌套变量

enter image description here 由于这些变量是私有的,我无法直接访问它们。由于其他原因,访问它们的方法抛出了NullPointerException。我真的需要阅读"数据"的价值。变量,就像eclipse在调试模式下所做的那样。有没有办法做这个编码。如果是这样,我该怎么做?

我真的很感激任何帮助。

1 个答案:

答案 0 :(得分:0)

Java中的反射允许您这样做。 查看here

中的示例

在您的情况下,代码看起来像:

Field dataField = root.getLocalSymbolTable().getClass().getDeclaredField("data");
dataField.setAccessible(true);
Object dataFieldValue = dataField.get(root.getLocalSymbolTable()); 

当然,字段是私有的,有其他意见等等。