Java EclipseMars与Map.Entry在使用streams时的错误?

Java EclipseMars与Map.Entry在使用streams时的错误?,java,eclipse,java-stream,Java,Eclipse,Java Stream,当从流中收集时,我看不到EntrygetKey()和getValue()方法,因为Eclipse只提供Object方法,尽管一切编译正常 someMap.entrySet().stream() .filter( entry -> entry.getKey().isConsumed() || entry.getKey().getSurvivalCount() > 0) // this compiles but

当从流中收集时,我看不到
Entry
getKey()
getValue()
方法,因为Eclipse只提供
Object
方法,尽管一切编译正常

someMap.entrySet().stream()
                  .filter( entry -> entry.getKey().isConsumed() || entry.getKey().getSurvivalCount() > 0)

                   // this compiles but auto-completion only offers object methods
                  .collect(Collectors.toMap(entry -> entry.getKey(), entry -> entry.getValue()));
这是Eclipse bug还是我遗漏了什么?

我正在使用: 版本:Mars.1发行版(4.5.1)

用于可视化的图像:


当我将谓词指定为匿名内部类时,Eclipse很高兴:

Predicate<Entry<String, Integer>> predicate = new Predicate<Entry<String, Integer>>() {
    public boolean test(Entry<String, Integer> entry) {
        return entry.getKey() == null || entry.getKey().length() > 6;
    }
};
// ...
someMap.entrySet().stream().filter(predicate)
谓词=新谓词(){
公共布尔测试(条目){
return entry.getKey()==null | | entry.getKey().length()>6;
}
};
// ...
someMap.entrySet().stream().filter(谓词)
然而,lambda是有问题的。eclipse过去还存在其他bug,例如它甚至没有编译,比如一个或多个


因此,看起来您发现了lambda的一个bug,代码完整。

我使用的版本是:Mars.2发行版(4.5.2)Build id:20160218-0600,我遇到了与您相同的问题


它看起来像一个bug,因为它将
entry
变量识别为
entry
类型的对象。但是我在Eclipse中找不到这个bug

这并不能真正回答问题。如果您有不同的问题,可以单击以提问。你也可以提醒更多人注意这个问题@问题是“这是Eclipse bug还是我遗漏了什么?”。“我和你经历了同样的问题。它看起来像一个bug[…]”不是对这个问题的回答,特别是,你怎么可能把它解释为另一个问题?