java - 不理解方法返回的问题
问题描述
我编译并执行以下代码片段并打印
A collection coming up.
60
但我不明白为什么“即将推出一个系列”。打印一次
import java.util.ArrayList;
import java.util.Collection;
public class RQ400_100 {
public static void main(String[] args) {
int sum = 0;
for (int i : makeCollection())
sum += i;
System.out.println(sum);
}
static Collection<Integer> makeCollection() {
System.out.println("A collection coming up.");
Collection<Integer> collection = new ArrayList<Integer>();
collection.add(10);
collection.add(20);
collection.add(30);
return collection;
}
}
解决方案
基本上代码是这样运行的:
firstmain
被调用,它调用makeCollection()
. 当makeCollection()
被调用时,它会打印“即将推出的集合”,然后创建集合并返回它。然后我们回到 main 并遍历新创建的集合并计算其总和 (60)。然后主要打印'60'。
结果是makeCollection
计算一次,主计算一次,打印的最终结果
A collection coming up.
60
推荐阅读
- c# - 如何获得blob的全名
- python - 为什么“else”行给出无效的语法错误?
- python - Tensorflow 没有为 python_io 库使用 GPU
- git - 安装 OsmAnd-ios,PATH 中缺少 perl
- javascript - 如何从 Jenkins 管道跨 AWS 中的多个账户运行 .js 文件?
- java - 类型安全 Map 的多种键类型
- travis-ci - 如何仅在使用 Travis 手动触发构建时采取特定操作
- android - 将 Kotlin 文件编译为 Dex 会生成 ClassNotFoundException (kotlin.jvm.internal.Intrinsics)
- java - 为什么我不能在不提供类型的情况下声明通用接口字段?
- excel - 使用特殊字符的 Excel VBA 条件格式