【问题标题】:java for each: using method in the list part (right hand side of :) [closed]java for each:使用列表部分中的方法(:) [关闭]
【发布时间】:2012-12-05 01:42:44
【问题描述】:

我知道这是一个愚蠢的问题,因为我从未见过任何在 for each 循环中使用方法返回列表的示例,我直观地觉得这不是一个好主意:

for (String element : computeElementList()) {
    Systems.out.print(element);
}

我应该先将方法分配给变量吗?或者这根本不需要,因为这个 computeElementList() 方法只会在循环开始时被调用一次?

【问题讨论】:

  • 您可以添加打印语句来检查行为,而不是在这里发布
  • 哇,这么多底片。看来只能怪我自己了。无论如何,很高兴知道 stackoverflow 仍然存在并且用户变得更加严格。

标签: java foreach


【解决方案1】:

它并没有真正增加可读性。由于该函数返回一些您可以迭代的内容:集合、数组等。没关系。返回布尔值的函数也是如此:

if(doSomething())  {...}

该函数只会被调用一次。如果不是,即使在大小为 1 的列表上,您也会很快 permgen / 耗尽内存。

【讨论】:

    【解决方案2】:

    不需要额外的变量,因为computeElementList() 只会在循环开始时被调用一次。

    除非您需要 computeElementList() 的结果来做其他事情,否则创建一个新变量只会给代码添加混乱 (IMO)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-14
      • 2013-10-17
      • 1970-01-01
      • 2013-08-07
      • 2022-06-10
      • 1970-01-01
      • 2012-12-24
      相关资源
      最近更新 更多