我正在尝试使用
获取可能已经或可能尚未初始化的几个片段的ID int i = myFragment.getId();
,int j = mySecondFragment.getId();
。
我的问题:除了
之外,是否有更清晰/更好的方法来获取每个有效片段的ID if (myFragment != null) {int i = myFragment.getId();}
?
答案 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);
避免大量的重复输入,并使您的代码更清晰。