我可以用这样的代码进行转换:
Object[] array = (Object[]) message.get(key);
boolean[] result = new boolean[array.length];
for (int i = 0; i < array.length; i++) {
result[i] = (boolean) array[i];
}
Run Code Online (Sandbox Code Playgroud)
但是,我认为可以使用Java 8流进行相同的转换.我开始编写这样的代码:
boolean[] = Arrays.stream(array)
.map(Boolean.class::cast)
.map(Boolean::booleanValue)
.toArray()
Run Code Online (Sandbox Code Playgroud)
但是这段代码不起作用.编译说
incompatible types: java.lang.Object[] cannot be converted to boolean[]
Run Code Online (Sandbox Code Playgroud)
我试图了解代码的问题.我认为这map(Boolean::booleanValue)将返回我可以收集的布尔值流toArray.
我正在调用分页服务,我可以使用如下代码遍历所有分页集合:
Pageable pageable = PageRequest.of(0,100);
Page<Event> events = eventsService.getEventsPage(pageable);
while(!events.isLast()) {
doStuff(events)
events = eventsService.getEventsPage(events.nextPageable())
}
doStuff(events) // rest of events
Run Code Online (Sandbox Code Playgroud)
有更优雅的解决方案吗?我需要分页,否则系统将耗尽内存。
我正在测试一个脚本来恢复存储在 S3 存储桶中的日期,并使用每天将数据移动到 Glacier 的生命周期规则。因此,理论上,当我将文件上传到 S3 存储桶时,一天后,亚马逊基础设施应该将其移动到冰川。
但我想测试我在 python 中开发的脚本来测试恢复过程。因此,如果我理解 boto3 API,我还没有看到任何方法来强制存储在 S3 存储桶中的文件立即移动到冰川存储中。可以这样做,或者必须等到亚马逊基础设施触发生命周期规则。
我想使用这样的代码:
bucket = s3.Bucket(TARGET_BUCKET)
for obj in bucket.objects.filter(Bucket=TARGET_BUCKET, Prefix=TARGET_KEYS + KEY_SEPARATOR):
obj.move_to_glacier()
Run Code Online (Sandbox Code Playgroud)
但我找不到任何 API 可以按需迁移到 Glacier。另外,我不知道是否可以使用存储桶生命周期规则按需强制执行此操作