Kompilator Maven a kompilator Eclipse Generics Difference?

Zauważyłem wiele problemów w moim projekcie, kiedy przeszedłem od wersji Eclipse do wersji Maven. Używam wtyczki kompilatora 2.5.1.

JDK jest open-JDK-7

Wyodrębniłem problem w nowym projekcie i zapisałem go w tym problemie:

public class Test {

public static void main(String[] args) {
    List<String> list = newList();
    for(String name : sort(newList(list))) {
        System.out.println(name);
    }
}

public static <T> List<T> newList() {
    return new ArrayList<T>();
}

public static <T, E extends T> List<T> newList(Collection<E> list) {
    return new ArrayList<T>();
}

public static <T> List<T> sort(List<T> list) {
    return list;
}
}

To nie udaje się skompilować z javaC (ale działa w Eclipse) z następującym błędem:

[BŁĄD] Nie można wykonać celu org.apache.maven.plugins: maven-compiler-plugin: 2.5.1: kompiluj (kompilacja domyślna) podczas testu projektu: Błąd kompilacji
[ERROR] /home/username/workspaces/projectx43/test/src/main/java/test/Test.java:[11,24] błąd: niezgodne typy

A to zadziała:

public class Test {

    public static void main(String[] args) {
        List<String> list = newList();
        for(String name : sort(newList(list))) {
            System.out.println(name);
        }
    }

    public static <T> List<T> newList() {
        return new ArrayList<T>();
    }

    public static <T> List<T> newList(Collection<? extends T> list) {
        return new ArrayList<T>();
    }

    public static <T> List<T> sort(List<T> list) {
        return list;
    }
}

Wszyscy widzą, że wersja z E jest tak samo dobra, jak wersja używająca tylko T. Teraz pytanie brzmi, czy mogę zmodyfikować kompilator javac, aby to zaakceptować. Wszelkie informacje na ten temat będą mile widziane.

Inna możliwość: czy openJDK 7 obsługuje to inaczej niż SunJDK 7? Jeśli możesz, zweryfikuj ten fragment z najnowszymi wersjami Windows Sun JDK 7 lub nawet z wersją beta JDK 8. Bardzo dziękuję.

PS: Przeczytałem pytania Eclipse vs. JavaC + Generics oraz powiązane błędy zgłaszane do rozwiązania.

questionAnswers(1)

yourAnswerToTheQuestion