Учитывая эту универсальную функцию:
<T> List<T> function() { return null; }
Почему это компилируется
List<String> l = function();
, тогда как это не ?
List<String> l = (List<String>) function();