如何设置ObjectListing类的S3ObjectSummary集合?(无setter方法)
如何设置ObjectListing类的S3ObjectSummary?
给定的ObjectListing类未提供setObjectSummaries方法,但它的getObjectSummaries()方法直接返回了类内部维护的objectSummaries列表实例(而非不可变副本),因此可以通过这个返回的列表直接修改内容,间接实现“设置”的效果。
具体操作方式:
- 调用
getObjectSummaries()获取列表的引用 - 对该列表执行添加、删除、清空、批量添加等操作,所有修改会直接作用于
ObjectListing实例的内部列表
代码示例:
// 创建或获取ObjectListing实例 ObjectListing objectListing = new ObjectListing(); // 获取内部的S3ObjectSummary列表 List<S3ObjectSummary> summaryList = objectListing.getObjectSummaries(); // 方式1:添加单个S3ObjectSummary S3ObjectSummary newSummary = new S3ObjectSummary(); newSummary.setKey("test-file.txt"); newSummary.setSize(2048L); summaryList.add(newSummary); // 方式2:替换全部内容 summaryList.clear(); List<S3ObjectSummary> anotherSummaryList = new ArrayList<>(); // 填充anotherSummaryList... summaryList.addAll(anotherSummaryList);
注意事项:
因为getObjectSummaries()返回的是类内部的ArrayList实例,没有做任何封装或不可变处理,所以所有对该列表的修改都会直接影响ObjectListing对象的状态,无需额外的设置方法。
内容的提问来源于stack exchange,提问作者Siddharth Aadarsh
相关产品推荐
相关产品推荐

