2016-10-04 71 views
0

我最近在Eclipse(MAC)上安装了JDK 8,并试图使用这些流。无法在Eclipse上获取流工作

然而,似乎是Java的8配置不正确,因为我得到以下行的代码以下错误:

List<Eshop> tempShops = eshops.stream().filter(e -> e.getName().equals(name)).collect(Collectors.toList()); 

Multiple markers at this line 
    - e cannot be resolved to a variable 
    - e cannot be resolved 
    - Syntax error on token "-", -- 
    expected 

任何人有一个想法是什么可能是错误的?

编辑 也试过像

List<Eshop> tempShops = eshops.stream().filter((e) -> e.getName().equals(name)).collect(Collectors.toList()); 
+0

看起来像你正在使用'args - >表达式'。它应该是'(args) - >表达式'。 –

+0

嗨,你可以更具体吗? (args)是什么意思?你能给个例子吗? – panipsilos

+0

就像在你的lambda参数中需要括号一样。参见[Java Lambdas简介](/ documentation/java/91/lambda-expressions/2353/introduction-to-java-lambdas)。 –

回答

3

Eclipse的开普勒不包含Java 8支持(除非你安装了一个补丁)。

您应该使用当前的Eclipse Neon(4.6.1)来获得完整的Java 8支持。

+0

thnx格雷戈,我会移动到霓虹然后。 – panipsilos

+0

这是因为Eclipse不使用JDK编译器,而是使用自己的嵌入式编译器。 –