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

我试图将对象(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

回到顶部