Eclipse Neon.1 generics compilation error: cannot

2019-04-11 06:12发布

问题:

MWE:

import java.util.Comparator;
import java.util.TreeMap;

import static java.util.Arrays.asList;
import static java.util.stream.Collectors.groupingBy;
import static java.util.stream.Collectors.mapping;
import static java.util.stream.Collectors.toList;

public class ShouldCompileInEclipse {

    void doesNotCompileInEclipse() {
        asList("eclipse").stream()
            .collect(groupingBy(
                    this::function,
                    () -> new TreeMap<>(Comparator.reverseOrder()),
                    mapping(this::function, toList())));
    }

    String function(String s) {
        return s;
    }
}

Why the code will not compile under Eclipse?

Version: Neon.1a Release (4.6.1)
Build id: 20161007-1200

The error is:

Cannot infer type arguments for TreeMap<>

It compiles successfully by javac 1.8.0_102