string = string.trim(); 不好的做法?

Wil*_*ill 1 java

好的,我正在使用Sonar来检查代码质量.它告诉我这个简单的方法导致两个主要警告.

public static String formatString(String string) {
    if(string==null) {
        return null;
    }
    string = string.trim();
    string = string.toUpperCase();
    return string;
}
Run Code Online (Sandbox Code Playgroud)

由于直接访问参数,我可以理解警告.正如你所看到的,这种方法几乎没有什么作用.删除空格并将其放入大写字母中.但是问题是什么,因为它最终会返回一个字符串.鉴于创建字符串的开销,创建值持有者字符串似乎超出了要求.

所以我的问题是我在做什么编码不好,如果是这样,为什么呢?

das*_*ght 5

我不认为你做错了什么:虽然整个代码可以折叠成这样的单行

return string == null ? null : string.trim().toUpperCase();
Run Code Online (Sandbox Code Playgroud)

我知道那些喜欢在多行上看到它的人.编译器应该找出所有必要的优化相关的两个写回string"不必要",所以我认为你很好.

  • @Will [绝对!](http://en.wikipedia.org/wiki/Ternary_operation)它被称为"三元运算",因为它由三部分组成 - 条件,"何时为真"结果,以及"何时"错误的"结果.与`if`是*语句*不同,三元操作是*表达式*. (3认同)