package com.mypackage;
import java.util.List;
import java.util.Map;
public class InitializationDemo {
public static void main(String[] args) {
List<String> a, b = null;
List<String> c = null, d = null;
Map<String, String> e, f = null;
Map<String, String> g = null, h = null;
if(c == null){ //line $38: Works no compilation error
// Do Something here
}
if(a == null) { //line #40: compilation error
// Do Something here
}
if(e == null) { //line #44: compilation error
// Do Something here
}
if(g == null) { //line #46 Works no compilation error
// Do Something here
}
}
}
Получить «Локальная переменная a может не быть инициализирована». ошибка компиляции в строке # 40 и строке # 44:Инициализация нескольких переменных Java - Как это работает?
Я пытаюсь понять под деревом, как это работает, так что строки # 38 и # 46 не сигнализируют ошибку компиляции, однако ошибка компиляции сигналов # 40 и # 44 ,
Почему на земле вы бы написать код таким образом? Ужасно. Будем надеяться, что это плохо продуманный пример, а не то, что вы когда-либо писали. – duffymo
Любой инициализатор, который вы предоставляете в сочетании с объявлением локальной переменной, применяется только к переменной, прямо слева от знака '='. Он не применяется ни к каким другим переменным, указанным в том же самом заявлении, до или после. –
Правильно плохо отформатирован, но в качестве примера – Shivakumar