gpt4 book ai didi

java - 在循环中创建对象的新实例以添加到列表中

转载 作者:行者123 更新时间:2023-12-04 04:57:59 25 4
gpt4 key购买 nike

我正在尝试将对象 (JavaBean) 添加到列表中。

     MyWebServiceRequest mywebService = new MyWebServiceRequest();
MyRequestType type= new MyRequestType ();

for(int i=0; i< 9; i++){
type.setA(someDynamicValue);
type.setB(someDynamicValue);
mywebService.add(type);
}

这仅创建了一个 (type) 对象,因此它使用相同的数据添加相同的对象 9 次。
 MyWebServiceRequest mywebService = new MyWebServiceRequest();
for(int i=0; i< 9; i++){
MyRequestType type= new MyRequestType ();
type.setA(someDynamicValue);
type.setB(someDynamicValue);
mywebService.add(type);
}

这将创建多个对象,添加 9 个具有 diff 值的 diff 对象。

如果(for 循环)在每次发出请求时在单个循环中创建数百个对象而不是 9 个,该怎么办?
所以它在内存中转储对吗?

如何避免这种情况?

提前致谢。

最佳答案

当你这样做时

 MyWebServiceRequest mywebService = new MyWebServiceRequest();
MyRequestType type= new MyRequestType ();

for(int i=0; i< 9; i++){
type.setA(1);
type.setB(2);
mywebService.add(type);
}

线路 mywebService.add(type);将对象添加到列表中,无论它的状态是否改变或者它是同一个对象。因为它是一个列表而不是一个不允许重复的 Map。

所以计数到 10 ,现在当你这样做的时候
 MyWebServiceRequest mywebService = new MyWebServiceRequest();


for(int i=0; i< 9; i++){
MyRequestType type= new MyRequestType ();
type.setA(1);
type.setB(2);
mywebService.add(type);
}

代码现在创建一个新对象并添加到列表中,但每个对象都不同。
两个片段的唯一区别是,第二个片段中的对象不相同,但第一个片段中的对象相同但添加了 10 次。

关于java - 在循环中创建对象的新实例以添加到列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16515362/

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