gpt4 book ai didi

java - 在 Java 中使用 for-each 循环时,对象变量是否会创建对象的实例?

转载 作者:行者123 更新时间:2023-12-01 16:32:35 25 4
gpt4 key购买 nike

我使用以下代码将新的 StockRecord 添加到我的 stockRecords 集合中。 StockRecord 扩展了 Stock。

for (Stock s : stock) {
stockRecords.add(new StockRecord(s.get_storeID(),
s.get_sku(), s.get_itemCount()));
}

我在 StockStockRecord 的构造函数中都有一个 println 语句。当我运行此代码时,我得到以下输出:

Stock()
StockRecord()
Stock()
StockRecord()
Stock()
StockRecord()
Stock()
StockRecord()

在 for-each 循环中使用变量 s 是否实际上创建了 Stock 的实例?

最佳答案

事实并非如此。 For循环使用java迭代器。在循环的每次迭代中,都会在 stock.iterator() 返回的对象上调用 Iterator.hasNextIterator.nextjava.util 集合不会创建新对象,但如果您有自定义集合,则可能会创建新对象。

另一种可能性是您在调用 getter 或 StockRecord 构造函数本身的主体中创建对象。在这些地方寻找"new"。

关于java - 在 Java 中使用 for-each 循环时,对象变量是否会创建对象的实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13111065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com