由于静态块用于以动态方式初始化静态数据成员,因此我有以下代码:
class Temp {
static int x;
static {
try {
x = System.in.read();
} catch (Exception e) {
//Do nothing
}
}
}
class Temp1 {
public static void main(String args[]) {
System.out.println(Temp.x);
}
}
class Temp2 {
public static void main(String args[]) {
System.out.println(Temp.x);
}
}
在运行 Temp1、Temp2 时,x 的正常值应该是我从键盘输入的值,但无论我从键盘输入什么,我总是得到 49 和 50。
我已经看到了 inputstream 类的 read() 方法,它应该返回相同的结果。为什么它在每种情况下都返回 49 和 50?