Collections.emptyList()的难题

xia*_*aok 4 java generics collections

int j = 0; 
List<Integer> i = j > 0 ? Collections.emptyList() : new ArrayList<Integer>(); // compiler error:cannot convert from List<capture#1-of ? extends Object> to List<Integer>
Run Code Online (Sandbox Code Playgroud)

而,

List<Integer> li = Collections.emptyList(); // it works
Run Code Online (Sandbox Code Playgroud)

虽然我知道类型擦除,但我没有编译失败的原因!

谢谢,谢谢!

小智 7

试试这个:

List<Integer> i = j > 0 ? Collections.<Integer>emptyList() : new ArrayList<Integer>(); 
Run Code Online (Sandbox Code Playgroud)