我正在进行java代码检查。这是一个函数(片段):
String getValue() {
String res;
StringBuilder strBuilder = new StringBuilder();
// More code here that sets strBuilder
return res = strBuilder.toString();
}
首先警告不使用res的值。其次我不明白回报。他们为什么不只是return( strBuilder.toString() )
。有某种优势吗?
答案 0 :(得分:12)
res
未使用,因此没有理由这样返回。你可以删除它:
String getValue() {
StringBuilder bs = new StringBuilder();
//
// More code here that sets sb
return bs.toString();
}
答案 1 :(得分:10)
这种代码有时可能是由于不完全删除调试工件造成的:
String getValue() {
String res;
StringBuilder bs = new StringBuilder();
//
// More code here that sets sb
res = bs.toString();
// Test and/or display res here
return res;
}
它似乎是下一轮重构和清理的好候选人。
答案 2 :(得分:6)
只是猜测,但有些(大多数?)IDE不允许您直接检查函数返回的值。使用此方案,您可以在方法的末尾放置一个断点,然后将鼠标悬停在" res"获得返回值。
答案 3 :(得分:2)
你是绝对正确的;分配给res
毫无意义; return bs.toString();
会做同样的事情。
P.S。 +1,不忽略编译器警告。
答案 4 :(得分:0)
你不能这样做
String res = strBuilder.toString();
return res ;
或直接,
return strBuilder.toString();
现在,如果您想了解Is there any benefit
提出的福利,我总是希望直接退货。
GC
收集它。所以,内存少见..... 这些事情并不大,我不得不在你问的时候说
答案 5 :(得分:-4)
也可以写成:
String getValue() {
return new StringBuilder().toString();
}