Ответ 1
res
не используется, поэтому нет причин возвращаться так. Вы можете удалить его:
String getValue() {
StringBuilder bs = new StringBuilder();
//
// More code here that sets sb
return bs.toString();
}
Я выполняю проверку кода Java. Вот функция (фрагмент):
String getValue() {
String res;
StringBuilder strBuilder = new StringBuilder();
// More code here that sets strBuilder
return res = strBuilder.toString();
}
Сначала появляется предупреждение о том, что значение res не используется. Во-вторых, я не понимаю возвращения. Почему они не просто return( strBuilder.toString() )
. Есть ли какие-то преимущества?
res
не используется, поэтому нет причин возвращаться так. Вы можете удалить его:
String getValue() {
StringBuilder bs = new StringBuilder();
//
// More code here that sets sb
return bs.toString();
}
Такой код иногда может быть вызван неполным удалением артефактов отладки:
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;
}
Это, безусловно, кажется хорошим кандидатом на следующий раунд рефакторинга и очистки.
Просто гадать, но некоторые (большинство?) IDE не позволяют вам напрямую проверять значение возвращаемых функций. С помощью этой схемы вы можете поместить точку останова в конце метода и наведите указатель мыши на "res", чтобы получить возвращаемое значение.
Ты абсолютно прав; присвоение res
не имеет смысла; return bs.toString();
будет делать то же самое.
P.S. +1 для игнорирования предупреждений компилятора.
Вы не можете сделать
String res = strBuilder.toString();
return res ;
Или напрямую,
return strBuilder.toString();
Теперь, если вы хотите узнать о преимуществах по вашему запросу Is there any benefit
, я всегда предпочитаю прямое возвращение. Моя личная логика проста:
GC
соберет его. SO, меньше памяти см......Те вещи не большие, я должен был сказать, когда вы спросили
Также может быть записан как:
String getValue() {
return new StringBuilder().toString();
}