Java反射机制疑惑:如何获取私有字段值?

原创 淩亂°似流年 2024-12-13 23:45 84阅读 0赞

在Java中,由于私有(private)字段是不能直接通过代码访问的,因此默认情况下我们无法获取。

但是,Java提供了一种方式来访问私有字段——反射(Reflection)。

以下是一个简单的示例:

  1. // 创建对象
  2. MyClass obj = new MyClass();
  3. // 获取私有字段
  4. Field field = obj.getClass().getDeclaredField("privateField"); // 注意:"privateField" 是你要获取的私有字段名
  5. // 设置访问权限为可写(private accessible)
  6. field.setAccessible(true);
  7. // 保存值到私有字段
  8. field.set(obj, "valueToSet");
  9. // 现在,你可以通过obj来访问这个私有字段了
  10. System.out.println(obj.getPrivateField("privateField"))); // 输出:valueToSet

这段代码首先创建了一个带有私有字段的对象。然后使用反射获取并设置这个私有字段的值。最后展示了如何通过对象访问这个修改后的私有字段。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,84人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java反射如何获取私有属性

    在Java中,私有属性是不能直接通过代码访问的。但是,Java提供了反射(Reflection)机制,可以在运行时动态地查看类信息、创建对象以及访问包括私有属性在内的任何属性。