我最近在我的Eclipse(MAC)上安装了JDK 8,我试图使用这些流。
但是,似乎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
任何人都知道可能出现什么问题?
EDIT 也试过像
List<Eshop> tempShops = eshops.stream().filter( (e) -> e.getName().equals(name)).collect(Collectors.toList());
答案 0 :(得分:3)
Eclipse Kepler不包含Java 8支持(除非您安装了补丁)。
您应该使用当前的Eclipse Neon(4.6.1)来获得完整的Java 8支持。
答案 1 :(得分:0)
我有同样的问题。我分别创建了一个谓词,然后自动导入了java.util.function.Predicate包,并解决了错误。
您可以尝试这样的事情:
谓词商店= e-> {返回e.getName()。equals(name);};
列出tempShops = eshops.stream()。filter(shop).collect(Collectors.toList());