我在O'Reilly Media撰写的“ Java泛型和集合:加快Java开发过程”一书中遇到了以下声明。
Java语法要求类型参数只能出现在使用点分形式的方法调用中。即使该方法
toList在调用代码的同一类中定义,我们也不能按以下方式将其缩短:
List<Integer> ints = <Integer>toList();//编译时错误这是非法的,因为这会混淆解析器。
这是方法的签名:
public static <T> List<T> toList(T... arr)
我确实收到了以上代码的参数不匹配错误(无与预期的整数数组)。编译器错误是逻辑上的。但是,在这种情况下,我不了解书中最后一条语句的含义- 这是非法的,因为这会混淆解析器。
解析器在哪里变得困惑?这只是简单的签名不匹配,因此不应该被允许。我想念什么吗?
谢谢你的帮助。