在循环中创建对象的新实例以添加到列表中
我试图将对象(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);
}
这只会创建一个(类型)对象,因此它会向同一对象添加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);
}
这将创建多个对象,并使用diff值添加9个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);
}
现在,代码创建了一个新对象并添加到列表中,但是每个对象都不相同。两个片段中的唯一区别是,第二个片段中的Objects不相同,但第一个片段中的Objects相同,但相加了10次。
以上是 在循环中创建对象的新实例以添加到列表中 的全部内容, 来源链接: utcz.com/qa/418765.html