2014-12-30 36 views
0

考虑下面的代码:空检查:哪一个表单很好?

private List<TestDTO> types; 

    if(!getTest().contains(type)) { 
     return Color.LIGHT_GRAY; 
    } 
    return Color.BLACK; 


public List<TestDTO> getTest() { 
    if (types== null) { 
     types= new ArrayList<TestDTO>(); 
    } 
    return types; 
} 

我要保持空校验if条件里面或者是好事,有检查空和初始化列表一个单独的方法,如上图所示?

+1

你也可以通过正确初始化你的变量来避免'null'。但是一个自己的方法可能会更好,避免重复的'null'检查。 – Tom

+0

我的经验是,当你有像这样的代码 - “初始化东西,如果它还没有被初始化” - 它是用多种方法完成的。在这种情况下,将其作为一个单独的私有方法绝对是一个好主意。 – ajb

+0

getter方法'getTest()'也可以在代码中继续使用吗? @ajb – NewBie

回答

1

这是一个设计问题,取决于您的代码库。对存在进行getter检查可以保证你永远不会返回null,这是一个很好的保证。

如果它在一个已经存在的类的大代码库中,它可以在很多地方创建冗余代码。

从看你的代码,你所做的只是初始化一个容器,所以我认为这是一个不错的选择。它可以避免未来的错误。