首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么增强的for循环不执行null检查

为什么增强的for循环不执行null检查
EN

Stack Overflow用户
提问于 2010-10-21 13:48:50
回答 2查看 21K关注 0票数 19

为什么增强的for循环在迭代集合之前不执行null检查。

EN

回答 2

Stack Overflow用户

发布于 2013-10-21 15:43:15

我有点害怕断言反对乔恩·斯基特。:| ...但是真见鬼..。你对这个场景怎么看?

`

代码语言:javascript
复制
findMoney(List<Places> places){
   int money = 0;
   for(Place place : places){
   money += searchWithCare(place);
   }
return money;
}

`

如果我让某个客户告诉我去哪里找,他什么也没告诉我。你认为在这里抛出一个NullPointerException更好吗?可能正在管理对此方法的调用,因此如果参数为空,则不调用它?我认为返回0是一个一致的响应,因为这里没有错误。我相信管理代码流是有例外的,我不明白为什么我要在这种情况下改变流。返回一个cero或者甚至null可能是一个很好的响应,难道不是吗?

那么这个解决方案呢?

代码语言:javascript
复制
findMoney(List<Places> places){
   int money = 0;
   for(Place place : places == null ?Collections.<Place>emptyList():places){
   money += searchWithCare(place);
   }
return money;
}

`

票数 5
EN

Stack Overflow用户

发布于 2015-01-29 19:31:42

代码必须如下所示:

代码语言:javascript
复制
for (AnyObject anyObject : checkIsEmpty(anyObjectList)) {
        System.out.println(anyObject.doSomething());
}

private <T> Iterable<T> checkIsEmpty(Iterable<T> iterable) {
        return iterable == null ? Collections.<T>emptyList() : iterable;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3984626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档