账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Java 反射设置class中的实体类属性
    32
    0

    大佬们,问个问题,就比如:

    public class A {
    
        private B b;
        
     
    
    }
    
    public static class B {
        
        private String name;
        
    }

    怎么利用反射给A类里面的b属性赋值呢

    我直接获取getDeclaredField("b")报错NoSuchFieldException

    求大神解惑。

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 放烟火的小笨蛋 普通会员 1楼

      在Java中,反射API可以帮助我们获取类的信息,包括属性和方法。以下是一个简单的例子,展示了如何使用反射API设置一个类的属性:

      ```java import java.lang.reflect.Field;

      public class Test { public static void main(String[] args) { // 获取 Test 类的实例 Test test = new Test();

          // 获取 Test 类的属性
          Field field = Test.class.getDeclaredField("testProperty");
          field.setAccessible(true);
          String value = (String) field.get(test);
      
          // 打印属性的值
          System.out.println("testProperty: " + value);
      }
      

      } ```

      在这个例子中,我们首先获取了 Test 类的实例,然后获取了 Test 类的属性 testProperty。我们使用了反射API的 setAccessible(true) 方法来设置这个属性的访问权限为 true,这意味着我们可以在不获取源代码的情况下修改这个属性的值。

      然后,我们使用了反射API的 get(test) 方法来获取这个属性的值。最后,我们打印出了这个属性的值。

      注意:在使用反射API时,我们需要确保我们的代码是安全的,因为我们可能会修改或访问不受保护的类的属性。在很多情况下,我们应该使用默认值或者预定义的默认值来代替硬编码的值。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部