如何在不重构的情况下编写此代码?

时间:2015-12-28 11:45:32

标签: java refactoring

我最近得到了帮助,编写一个语句,检查输入文本是空白还是只有空格。我得到了它的工作,但由于它对我来说过于先进的重构,所以我不太了解代码。有人可以将此翻译成更基本的代码吗?

name = name == null ? "" : name.trim();

4 个答案:

答案 0 :(得分:1)

您的代码类似于:

select @xmlColumn.value('(/event/@timestamp)[1]','datetime2'),
       @xmlColumn.value('(/event/data[@name="error_number"]/value)[1]', 'int'),
       @xmlColumn.value('(/event/action[@name="username"]/value)[1]', 'varchar(99)')

if else替换为“?:”运算符

答案 1 :(得分:1)

你看到的是一个“三元运算符”。它遵循以下语法:

boolean ? ifTrue : ifFalse

三元运算符与if / else语句的工作方式不同:它们为您提供了一个值(如3 + 4)。

因此,在此示例中,您将name设置为以下三元表达式的结果:

is name null? -+- true --> ""
               |
               +- false -> name.trim() (this function removes whitespace at
                                        the beginning and at the end of the string)

你也可以写:

public static String parseName(String name)
{
    if (name == null)
        return "";
    //else (else not neccesary here)
        return name.trim();
}

// in some block...
name = parseName(name);

答案 2 :(得分:0)

如果name等于null,它将等于“”;

否则它将等于name.trim()

答案 3 :(得分:0)

 name = name == null ? "" : name.trim();

这意味着

 String name;
 //You performed some processing here, your logic.
 if(name==null){
  name="";
 }
 else{
  name=name.trim();
 }