Ниже приведен мой код, задающийся вопросом, почему вместо Hello World напечатан символ null!Статическая переменная 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
}
}
Попробуйте разместить инициализацию s2, прежде чем s1. – Berger
Инициализировано по заказу декларации. Поэтому 's1' присваивается' getMyValue() ', который возвращает' null', так как 's2' еще не назначен. – Tunaki
Я не дотронулся до Java за долгое время, но вам не нужно ссылаться на внутреннюю функцию, используя 'this.getMyValue()', как обычное использование в C#, PHP и, насколько я помню, Java. Может быть, что-то изменилось. Кто-нибудь может пролить свет на это? На самом деле свойства класса, которые должны быть назначены с использованием другого метода, обычно выполняются внутри конструктора. – dchayka