局部变量初始化问题
ArrayList arrayList; int i; try { i=0; arrayList = new ArrayList(); } catch (Exception e) { }1) if (i>0) { arrayList = new ArrayList(); } else { //arrayList = new ArrayList(); }2) arrayList.add(i);局部变量,无论原始类型还是引用类型,在try...catch 和 if...else 中进行初始化时,
只在try 或if中初始化是无法通过编译的,
除非在try和catch,if和else中同时初始化,才能后续使用.
但如果使用
if(true){
i=0;
}else{
}
则可通过编译,因为一定会初始化成功.