如何避免多个if if语句

时间:2013-03-27 17:58:11

标签: java android

我正在尝试使用

获取可能已经或可能尚未初始化的几个片段的ID

int i = myFragment.getId();int j = mySecondFragment.getId();

我的问题:除了

之外,是否有更清晰/更好的方法来获取每个有效片段的ID

if (myFragment != null) {int i = myFragment.getId();}

2 个答案:

答案 0 :(得分:2)

您可以使用Google Guava

当然,您可以实现类似的功能,但是Guava提供了一些惊人的例子。

例如,假设一个参数可以为null,让我们称它为Optional,这个想法是你快速失败,只是不接受空值。或者甚至为它定义一个默认值。

public void method(Integer arg){
    Optional<Integer> possible = Optional.fromNullable(arg);
    Integer myNum = possible.get(); // Throws exception if arg is null
    Integer myNum2 = possible.or(0); // returns 0 if arg is null
}

这个想法是你不要让空值通过你的应用程序的某个级别,理想的是它永远不会超过视图(或者从数据库返回的路径上的持久层)。

如果这个想法一直贯彻执行。在业务层的核心,您不必担心空值。

你可以用番石榴做很多其他的事情,如果你决定遵循我的建议,一定要充分利用它:)

答案 1 :(得分:0)

如果你做了很多事情,那么你可以制作一个能够为你做检查的功能。所以不要输入

if (myFragment != null) {int i = myFragment.getId();}

你可以做任何像

这样的事情
public ID getFragmentId(Fragment myFragment){
    if (myFragment != null) {
        return myFragment.getId();
    } else {
        return someDefaultValue;
    }
}

然后只需致电

i = getFragmentID(myFragment);

避免大量的重复输入,并使您的代码更清晰。