以下は私のコードです。Java静的変数にNULL値が割り当てられています
public class MyClass {
static String s1 = getMyValue();
static String s2 = "Hello World!!!";
private static String getMyValue() {
return s2;
}
public static void main(String args[]) {
System.out.print(s1); //outputs: null
}
}
S1、S2の前に初期化を配置するようにしてくださいを参照ウィル。 – Berger
宣言の順に初期化されます。したがって、 's1'は' s2'がまだ割り当てられていないので 'null 'を返す' getMyValue() 'に割り当てられます。 – Tunaki
私は長い間Javaに触れていませんが、C#、PHP、そしてJavaを思い出す限り、this.getMyValue()を使用して内部関数を参照する必要はありません。何か変わったかもしれない。誰もがこれにいくつかの光を当てることができますか?実際には、別のメソッドを使用して割り当てられるクラスプロパティは、通常、コンストラクタ内で実行されます。 – dchayka