我有以下代码
public Player findPlayerByUsername(String username) {
return players.stream().filter(p -> p.getUsername().equalsIgnoreCase(username))
.findFirst().get();
}
问题是,如果没有值,我希望它返回null
,我将如何进行此操作?因为就目前而言,只会引发NoSuchElementException
。
答案 0 :(得分:11)
public Player findPlayerByUsername(final String username) {
return players.stream().filter(p -> p.getUsername().equalsIgnoreCase(username)).findFirst().orElse(null);
}
findFirst()
方法返回Optional<Player>
。
如果optional有player对象,optional.get()
将返回该对象。如果对象不存在而您想要一些替代方法,请在
.orElse(new Player()); or .orElse(null)
有关详细信息,请参阅Optional Documentation和Optional tutorial