Dlaczego nie można wnioskować o diamentach na anonimowych klasach wewnętrznych?

W Javie 7 i późniejszych, diament może być używany do wnioskowania typów normalnie tak bez problemu:

List<String> list = new ArrayList<>();

Jednak dla anonimowych klas wewnętrznych takich jak ten:

List<String> st = new List<>() { //Doesn't compile

    //Implementation here

}

Dlaczego to? Logicznie w tym scenariuszu mogę zdecydowanie wywnioskować typ jakoString. Czy istnieje logiczna przyczyna tej decyzji, w której typ nie może być faktycznie wyprowadzony z anonimowych klas wewnętrznych, czy też został pominięty z innych powodów?

questionAnswers(3)

yourAnswerToTheQuestion