1.情况一:无用的条件推断,就是你推断的这个条件永远为真
if (true & true) {
System.out.println("execute ok");
} else {
System.out.println("execute fail");
}
从else開始即为无作用。
由于true&true在编绎时即知结果。所以else部分是没用的,编译器知道肯定不会运行的代码。
换成:
boolean a = true;
boolean b = true;
if (a & b) {
System.out.println("execute ok");
} else {
System.out.println("execute fail");
}
则不会出现该问题,由于在编译时编译器不确定a & b是否恒成立。
2.情况二:多余的推断,就是你推断的这个对象永远不为空;事实上类似于情况一
TimeLineEventModel dataModel = new TimeLineEventModel();
if(dataModel !=null){
运行一些操作.....
}
这里的推断也是多余,由于你已经new了这个对象,那这个对象就不会为空
未完待续。可能还有其它一些情况的死代码。等到时候编码遇见了再进行补充吧!
眼下来看,dead code提示一般出如今if或其它推断的条件上。