此代码是从引用中复制的,但它显示了Intellj中的编译错误:
Stream locales = Stream.of(Locale.getAvailableLocales());
Map<String, Set<String>> countryToLanguages = locales.collect(
groupingBy(l -> l.getDisplayCountry(),
mapping(l -> l.getDisplayLanguage(),
toSet())));
编译器看到的对象名为“l”,而java对象不是语言环境;所以它无法理解方法l.getDisplayCountry()和l.getDisplayLanguage()。
Project SDK也是java 8,项目语言级别是8-lambdas,类型注释等。
答案 0 :(得分:0)
在intellij中,您还需要为每个模块设置语言级别(8)。 项目结构 - &gt;模块 - &gt;选择模块 - &gt;来源 - &gt;语言水平= 8
如果你想直接改变POM
首先添加属性
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
second-添加插件
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>