场景:
问题:
if里声明的对象只能在if{}作用域里生效,if外无法访问到这个声明出的对象
错误想法:
无参构造方法
//首先用无参构造方法声明对象,然后根据判断条件给参数
CaseBase cb = new Casebase();
if(condition1){
cb = Casebase(a, b, c);
}else if(condition2){
cb = Casebase(a, b, c, d);
}
function(cb);
正确处理:
if之前声明对象为null
CaseBase cb = null;
if(condition1){
cb = Casebase(a, b, c);
}else if(condition2){
cb = Casebase(a, b, c, d);
}
function(cb);
如图所示:
用无参构造方法声明时,已经声明了一个casebase对象,不能再被别的构造方法改变;
声明为null时还没有一个实际的对象,可以被构造方法改变