Java Lambda表达式导致Eclipse Luna中出现警告

Java Lambda表达式导致Eclipse Luna中出现警告,java,eclipse,lambda,Java,Eclipse,Lambda,我有一个非常类似的问题,如这个未回答的问题所述: 我在Windows7和Java8(JDK1.8.005)上使用EclipseLuna(服务版本1,4.4.1)。以下(编辑的)代码: 该警告分配给代码的这一部分:“(c1,c2)->” 注意:有趣的是,省略return语句的较短版本编译起来很好,没有任何警告: Collections.sort(new LinkedList<>(), (c1, c2) -> c1.equals(c2)? 1 : 0); 编辑2:Eclipse

我有一个非常类似的问题,如这个未回答的问题所述:

我在Windows7和Java8(JDK1.8.005)上使用EclipseLuna(服务版本1,4.4.1)。以下(编辑的)代码:

该警告分配给代码的这一部分:“(c1,c2)->”

注意:有趣的是,省略return语句的较短版本编译起来很好,没有任何警告:

Collections.sort(new LinkedList<>(), (c1, c2) -> c1.equals(c2)? 1 : 0);

编辑2:Eclipse开普勒没有显示此警告(相同的Java版本)。

顺便说一句。给定的代码旨在成为MWE-它没有任何意义。此代码:
Collections.sort(list,(c1,c2)->{return c1.equals(c2)?1:0;})也显示了警告。很好,这接近真实的MWE:-)我将更新我的问题-使用更复杂的示例没有意义。但是,此代码的快捷版本工作正常:Collections.sort(new LinkedList(),(c1,c2)->c1.equals(c2)?1:0;--奇怪的是,
(对象a,对象b)
(不过我们可能想找到更干净的东西)
(Recovered) Internal inconsistency detected during lambda shape analysis
Collections.sort(new LinkedList<>(), (c1, c2) -> c1.equals(c2)? 1 : 0);
Collections.sort(new LinkedList<>(), (Object c1, Object c2) -> {
    return c1.equals(c2)? 1 : 0;
});
    Collections.sort(list, (c1, c2) -> {
        Method m1 = this.allMethods.get(c1);
        Method m2 = this.allMethods.get(c2);

        int c = new Integer(m1.getParameterCount()).compareTo(
                new Integer(m2.getParameterCount()));

        if (c == 0) {
            Integer i1 = 0;
            Integer i2 = 0;
            if (ConstructorFactory.isTypeAcceptable(m1.getReturnType())) {
                i1 = 1;
            }
            if (ConstructorFactory.isTypeAcceptable(m2.getReturnType())) {
                i2 = 1;
            }

            c = i1.compareTo(i2);
        }

        if (c == 0) {
            c = m1.getName().compareTo(m2.getName());
        }

        return c;
    });