Java根据if条件判断不同的构造方法声明对象

场景:

Java根据if条件判断不同的构造方法声明对象

问题:

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);

如图所示:
Java根据if条件判断不同的构造方法声明对象

用无参构造方法声明时,已经声明了一个casebase对象,不能再被别的构造方法改变;
声明为null时还没有一个实际的对象,可以被构造方法改变

上一篇:TC8:ARP_41-47


下一篇:8大常见的服务器管理小工具