静的ブロックは静的データメンバーを動的に初期化するために使用されるため、次のコードがあります。
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を返すのですか?