我發現下面的代碼片段:奇怪的Java代碼
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主長度,輸出長度也會增加。
任何人都可以請解釋嗎? 我對反思沒有太多的知識。
它打印'裏面靜態bolck'我。你使用的是什麼版本的JDK/JRE? – assylias 2013-03-15 12:48:25
IBM 32位SDK用於Windows,Java技術版,6版 – 2013-03-15 12:50:29
我重複NPE的問題,因爲我渴望過 - ?**在任何情況下,你在哪裏與此打算** – mtk 2013-03-15 12:52:18