我只是在探索 java 反射 API,我遇到了以下代码片段
public class Main {
    public static void main(String[] args) throws IllegalAccessException, NoSuchFieldException{
            Field value=Integer.class.getDeclaredField("value");
            value.setAccessible(true);
            value.set(42, 43);
            System.out.printf("six times seven %d%n",6*7);
            System.out.printf("six times seven %d%n",42);
            System.out.println(42);
        }
    }
输出 :
six times seven 43
six times seven 43
42
我阅读了 set 方法的文档,其中指出它为给定对象设置字段的值。但我无法理解代码的输出,因为它在所有情况下都应该打印 42。
任何人都可以深入了解代码中发生的事情吗?