我正在使用这个教程使用lambda表达式。
Spring Boot - Bookmarks
但IntelliJ总是说:cannot resolve method(<lambda expression>)
.
我需要检查什么?
this.accountRepository.findByUsername(userId).orElseThrow(() -> new UserNotFoundException(userId));
我正在使用这个教程使用lambda表达式。
Spring Boot - Bookmarks
但IntelliJ总是说:cannot resolve method(<lambda expression>)
.
我需要检查什么?
this.accountRepository.findByUsername(userId).orElseThrow(() -> new UserNotFoundException(userId));
4条答案
按热度按时间r1zhe5dt1#
您的IntelliJ或项目似乎未设置为使用Java 8。
1.打开项目结构
1.查看项目设置|项目,项目SDK的值应为1.8
1.查看平台设置|SDK,应列出1.8
它应该看起来像这样:
lsmepo6l2#
您需要将“项目语言级别”更改为“8 -Lambda,类型注解等"。您可以在“项目设置”-〉“项目”中找到此选项
tkclm6bt3#
除了上面的答案,请查看pom.xml文件。源和目标应该是1.8或更高。
kt06eoxx4#
我得到了同样的错误,在更简单的上下文中,我猜,并没有改变版本。
所以我尝试通过ID查找Employee,但是如果ID不存在怎么办?
在我的存储库中,我有以下内容:
Spring很好地理解了它,可以获取Employee,但在没有匹配的Id的情况下就不行了,因此有必要处理该异常。
我的错误在于:
我是说这是可选的,但不是什么,一旦我改变为:
后来我解决了这个问题
在您的情况下,您有:
但是在你的repo中你使用了Optional〈entity〉吗?我猜对于Java 8你可以使用Optional,但是对于Java 17你需要指定,类似于: