Java 避免多个NOTNULL语句

Java 避免多个NOTNULL语句,java,junit,refactoring,Java,Junit,Refactoring,我有一个Converter类,在这里我将一个对象转换成另一个对象。这里有多个if语句,检查一个值是否为null。现在当单元测试这当然意味着,我需要测试每一个if条件,即使它非常简单。下面是一个简化的示例: public OutputData convert(InputData input){ final OutputData output = new OutputData(); output.setName(input.getName()); output.setCit

我有一个Converter类,在这里我将一个对象转换成另一个对象。这里有多个if语句,检查一个值是否为null。现在当单元测试这当然意味着,我需要测试每一个if条件,即使它非常简单。下面是一个简化的示例:

public OutputData convert(InputData input){
    final OutputData output = new OutputData();

    output.setName(input.getName());
    output.setCity(input.getCity());
    if(isNotEmpty(input.getObjects())){
        output.setMainObject(input.getObjects().get(0));
    }

    if(input.getType() != null){
        output.setType(input.getType());
    }

    if(input.getID() != null){
        output.setId(input.getID());
    }

    return output;
}

现在请记住,在我的真实项目中还有4到5个。那么,如何避免或确保它更易于测试呢?

您可以使用可选选项,但正如@Seelenvirtuose所说,除非您避免覆盖某些默认值,否则空检查会阻止设置已为空的值


您可以使用可选值,但正如@Seelenvirtuose所说,除非您避免覆盖某个默认值,否则空检查会阻止设置一个已经为空的值


是否有理由允许在
InputData
中使用空值?接下来:如果字段没有设置为空值,而不是设置为空值,会发生什么情况?问题是:为什么要检查空值?我的意思是,你可以简单地删除空检查代码。即使某个值是
null
,这个值也会简单地设置在一个已经
null
的值上。我根本不确定你问的是什么。您是否在询问如何修改上述代码以避免大量的
!=空
检查?或者如何编写测试上述代码的新代码?如果是后者,问题是什么?@Seelenvirtuose可以在构造函数中将它们设置为默认值。这就是为什么我问如果他只是将它们设置为null会发生什么(见上文)。你为什么要在
InputData
中首先允许null呢?接着问:如果字段根本没有设置,而不是设置为null,会发生什么?问题是:为什么要检查null?我的意思是,你可以简单地删除空检查代码。即使某个值是
null
,这个值也会简单地设置在一个已经
null
的值上。我根本不确定你问的是什么。您是否在询问如何修改上述代码以避免大量的
!=空
检查?或者如何编写测试上述代码的新代码?如果是后者,问题是什么?@Seelenvirtuose可以在构造函数中将它们设置为默认值。这就是为什么我问如果他只是将它们设置为null会发生什么(见上文)。