java - 有没有像eclipse那样读取私有(private)变量的方法?

标签 java

在下图中,Eclipse 显示我的“root”变量有一个名为“localSymbolTable”的嵌套变量,它还有另一个名为“data”的嵌套变量。

enter image description here 由于这些变量是私有(private)的,我无法直接访问它们。由于其他原因,访问它们的方法向我抛出了 NullPointerException。我确实需要读取“data”变量的值,就像 Eclipse 在 Debug模式下所做的那样。有没有办法进行此编码。如果是这样,我该怎么做?

我真的很感谢任何帮助。

最佳答案

Java 中的反射允许您做到这一点。 检查 here 中的示例

在您的情况下,代码将类似于:

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

当然,字段是私有(private)的是有原因的,请参阅其他评论等等。

关于java - 有没有像eclipse那样读取私有(private)变量的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47978401/

相关文章:

java - Spring中将变量传递给@Qualifier注解

java - (Node.js/Java) 如何使 XML 输出漂亮

JavaMail : msg. setSubject() 在版本 1.4.7 中不接受第二个参数(编码),抛出编译时错误

java - 转到java中for语句的开头

java - 关于java中的jar文件

java - 为什么特征方法为 Collector 返回一个枚举而为 Spliterator 返回一个 int?

eclipse - 无法从 Web 应用程序库中删除 jar

java - 使用 "this."的优势

java - 如何将动态 json 转换为 java 类?

java - Jsp header 中的用户名