【发布时间】:2018-06-21 10:10:13
【问题描述】:
我有一个返回大量数据的端点,我想删除其中的一部分。
例如:
A 类
public class A{
private String id;
private Date createOn;
private String processed;
}
B 类
public class B extends MongoDBObject{
private String id;
private Date createOn;
private String processed;
}
控制器
@RestController
@RequestMapping("/v1/read")
public class ReadController{
@Autowired
private StatementBundleService bundleService;
@CrossOrigin
@GetMapping(value = "/statementBundles")
public List<A> listStatements() {
List<A> result = new ArrayList<A>();
List<B> bundles = bundleService.getAll();
for(B bundle: bundles) {
result.add(new A(bundle));
}
return result;
}
我试图找出返回 A 列表的最佳方法是什么,而不需要从类 A 和类 B 中“处理”属性。
我应该只使用for each 循环还是iterator?我还应该将属性设置为null 还是其他方法?
【问题讨论】:
-
如何从
B创建A? -
为什么
new A(bundle)有效?你能修改那个构造函数不复制processed吗? -
A 中有构造函数,其参数 B 用于设置属性。问题是A类在其他地方使用所以我不能修改这个构造函数
-
是否可以从 A 中提取接口并使用它?然后,您可以根据某些要求创建 A 的多个实现。其中之一不会从初始化
B-object 中复制processed的值。
标签: java spring spring-restcontroller spring-rest