我找到了下面的代码片段:
import java.lang.reflect.Field;
public class Test {
public static void main(String[] args) {
System.out.println("Inside main");
}
static {
try {
Field value = String.class.getDeclaredField("value");
value.setAccessible(true);
value.set("Inside main", value.get("Inside static bolck"));
} catch (Exception e) {
throw new AssertionError(e);
}
}
}
根据我的理解,输出应该是Inside static bolck
,但输出是Inside stat
相同的字符长度Inside main
。
*如果我增加 Inside main 的长度,输出长度也会增加。
有人可以解释一下吗?我对反射没有太多的了解。