我是一个相对新手流用户,我觉得应该有一个更干净的方式来完成我下面的内容。是否有可能在一个流中完成下面的代码所做的一切(消除底部的if/else)?
谢谢
Optional<SomeMapping> mapping = allMappings.stream()
.filter(m -> category.toUpperCase().trim().equalsIgnoreCase(m.getCategory().toUpperCase().trim()))
.findAny();
if (mapping.isPresent()) {
return mapping.get();
} else {
throw new SomeException("No mapping found for category \"" + category + "\.");
}
在与equalsIgnoreCase()
进行比较时,无需使用toUpperCase()
。
return allMappings.stream().filter(m -> category.trim().equalsIgnoreCase(m.getCategory().trim()))
.findAny()
.orElseThorw (() -> new SomeException("No mapping found for category \"" + category + "\."));
如果可选
为空,请使用orelsetrow
引发异常:
return
allMappings.stream()
.filter(m -> category.trim().equalsIgnoreCase(m.getCategory().trim()))
.findAny()
.orElseThrow(() -> new SomeException("No mapping found for category \"" + category + "\"."));
我如何根据声纳lint规则更改代码? 我的代码如下: 我不能通过声纳规则。我怎么能改变我的代码?
在Java8中有没有更优雅的方法来实际实现这一点呢? 我说的是后跟,我想在列表中优雅地收集具有值的结果。
问题内容: 我有两个表,我想使用左外部联接将它们联接在一起。但是,即使我的左表仅包含唯一值,右表也可以多次满足CONDITION,因此会向结果集添加额外的行。 复制问题的代码: 如您所见,尽管左表保持不变,但第一个SELECT返回4行,第二个SELECT 6返回。 一个人如何严格遵守左表,而仅使用右表来补全左表中的行? 帮助! 问题答案: 抱歉,您的想法歪了。 这样考虑:如果您只希望tb1中的每一
有人能解释一下<code>是可选的</code>如何帮助我们避免<code>NullPointerException</code>吗? 这段代码不是也容易出现<code>NullPointerException</code>吗?如果是这样的话,那么为什么这个代码比其他代码更受欢迎 除了帮助我们了解函数是否实际具有返回值之外,还提供了什么可能的好处
我有个密码: 我收到一个警告 我怎么才能修好它?