final List<String> resources = someSao.getResource()
.stream()
.filter(Resource::isPresentInDB)
.map(Resource::getType)
.toList();
final String str = resources.contains("A") ? "A" : resources.get(0);
我知道应该有一种方法可以简化最后一行。如果 A 存在于过滤的资源列表中,我基本上尝试优先返回 A,如果 A 不存在,则返回它找到的第一个东西。 (找到第一个)。 有人可以帮我将两种不同的陈述合并为一个吗?
你可以这样做:
final String str = someSao.getResource()
.stream()
.filter(Resource::isPresentInDB)
.findFirst()
.map(r -> r.getType().contains("A")? "A": r.getType())
.orElse("A");