我遇到了一件有趣的事情:
static {
System.out.println(test); // error cannot reference a field before it is defined
System.out.println(cheat()); // OK!
}
private static boolean cheat() {
return test;
}
private static boolean test = true;
public static void main(String args[]) {}
第一种方法是错误的,您的编译器和IDE都会告诉您它是错误的。在第二种情况下,作弊是可以的,但它实际上将字段test
默认为false
。使用Sun JDK 6。
https://stackoverflow.com/questions/14587910
复制相似问题