public class Test {
private static final String str1 = new String("en");
private static Test instance = initInstance();
private static final String str2 = new String("en");
private static final String str3 = "en";
private Test() {
}
public static void main(String[] args) {
}
private static Test initInstance() {
instance = new Test();
System.out.println(str1 + ',' + str2 + ',' + str3);
return instance;
}
}
Teoretycznie z statyki wszędzie powinno skutkować "en, pl, en".Java - dziwne zachowanie static String - new String ("xxx") vs "xxx"
Wynik: "en, null, en"
Oczekiwany: "en, null, null" (odkąd odkryto zamówienie statyki rzeczywiście ma znaczenie)
Może ktoś to wyjaśnić? Czym różni się "en" i nowy ciąg ("en")?
+1, ponieważ nie miałem pojęcia, że można zainicjować inline tak ... – Izkata