本人对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 =???不知道为什么???

解决方案 »

  1.   

    因为第一段代码程序执行时,如果既不满足if也不满足else if的话则会执行else段的代码,必然会将two初始化
    而第二段代码执行时,如果既不满足if也不满足else if的话two就未能被初始化
      

  2.   

    但是我初始化为 TreeNodeBase   two  = null 或 TreeNodeBase   two     =new TreeNodeBase   ();报空指针错误????