请教: IF(){}ELSE{}的问题
本人对IF()}ELSE IF{}有一问题不清楚想请高手解释:TreeNodeBase two;
if (organization2.getType().equalsIgnoreCase("department")) {
two = new TreeNodeBase("rootNode-link",
organization2.getName(), false);
} else if (organization2.getType().equalsIgnoreCase("subbranch")) {
two = new TreeNodeBase("rootNode", organization2.getName(), false);
} else {
two = new TreeNodeBase("rootNode-link2",organization2.getName(), false);
}
two.setIdentifier(organization2.getOid().toString());
象上面的代码: TreeNodeBase two ;这样定义就可以了
但是如果条件变成
if (organization2.getType().equalsIgnoreCase("department")) {
two = new TreeNodeBase("rootNode-link",
organization2.getName(), false);
} else if (organization2.getType().equalsIgnoreCase("subbranch")) {
two = new TreeNodeBase("rootNode", organization2.getName(), false);
}
必须要初始化TreeNodeBase two =???
不知道为什么???
搜索更多相关主题的帖子:
ELSE two TreeNodeBase false
----------------解决方案--------------------------------------------------------
思路不清楚吧? 要测试这个知识点可以简单一点实验呀
----------------解决方案--------------------------------------------------------
如果是在方法内声明的变量,则必须进行变量的初始化,即赋初始值。
----------------解决方案--------------------------------------------------------
呵呵,我是新手我说说看法行不?不知道我理解得对不?
TreeNodeBase two;这名已经说明了two 是 TreeNodeBase类了;
所以你只要NEW 一个对象出来就可以了;
但是下部份的语句,two什么都不是,所以要先初始化;
----------------解决方案--------------------------------------------------------
局部变量必须要赋值。这个肯定都知道。
就是这个原因。
楼主的第一个程序,无论发生什么情况。two都能被赋值。
而第二段代码,如果一二两个条件都不满足的话,two就没有值了。这是不允许的,所以就要先给two初始化了。。。
----------------解决方案--------------------------------------------------------
LS正解,if else必须要列出所有可能的情况,就是说有if必须要有else才行,不然没有值
----------------解决方案--------------------------------------------------------