有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java自动设置一个类中的所有字段(private)

我想知道是否有可能将给定类中的所有字段(除了一些例外)设置为循环中的某个值。假设我们有一个包含许多字段的类,并且我们希望不是通过访问器手动填充它的值,而是以半自动的方式填充它的值。 在Java中,有一种方法可以显示给定类中的所有字段。本守则规定:

for (Field field : MyClass.class.getDeclaredFields()) {
    System.out.println(field);
}

还有一种设置值的方法:

License license = new License();
for (Field field : License.class.getDeclaredFields()) {
   System.out.println(field);
   field.set(license, 99);
}

但是,它失败了,出现了一个异常java.lang.IllegalAccessException: can not access a member of class License with modifiers "private。所以我现在想知道是否有可能为给定类中的私有字段设置值


共 (1) 个答案

  1. # 1 楼答案

    您需要通过调用field.setAccessible(true);来允许访问