您能告诉我使用getTheLastElement2()
代替getTheLastElement()
有什么好处(如果有任何优势)?我的意思是,为什么只返回结果更容易创建引用obj
?
import java.util.ArrayList;
import java.util.List;
public class Test {
List list;
Test(ArrayList list){
this.list = list;
}
public Object getTheLastElement(){
if (list.isEmpty())
return null;
else
return list.get(list.size()-1);
}
public Object getTheLastElement2(){
Object obj;
if (list.isEmpty())
obj = null;
else
obj = list.get(list.size()-1);
return obj;
}
}
答案 0 :(得分:2)
这两种实现之间没有区别:obj
引用可能会被优化掉。
在调试代码时,您确实获得了一些优势,因为您可以在return
getTheLastElement2
语句上设置断点,并且知道它总是会被命中。这与getTheLastElement
形成对比,您需要两个断点来检查返回值。
请注意,第一个示例中的else
是多余的:
public Object getTheLastElement(){
if (list.isEmpty()) {
return null;
}
return list.get(list.size()-1);
}
您可以进一步将其缩小为单个三元表达式:
public Object getTheLastElement(){
return !list.isEmpty() ? list.get(list.size()-1) : null;
}
答案 1 :(得分:1)
不,没有优势。此外,您应该返回list.get(list.size()-1)