我试图将对象(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。
mywebService.add(type);
所以计数到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次。