小编Kun*_*mar的帖子

为什么类型参数只能出现在使用点分形式的方法调用中?

我在O'Reilly Media撰写的“ Java泛型和集合:加快Java开发过程”一书中遇到了以下声明。

Java语法要求类型参数只能出现在使用点分形式的方法调用中。即使该方法 toList在调用代码的同一类中定义,我们也不能按以下方式将其缩短:

List<Integer> ints = <Integer>toList(); //编译时错误

这是非法的,因为这会混淆解析器。

这是方法的签名: public static <T> List<T> toList(T... arr)

我确实收到了以上代码的参数不匹配错误(无与预期的整数数组)。编译器错误是逻辑上的。但是,在这种情况下,我不了解书中最后一条语句的含义- 这是非法的,因为这会混淆解析器

解析器在哪里变得困惑?这只是简单的签名不匹配,因此不应该被允许。我想念什么吗?

谢谢你的帮助。

java generics variadic-functions

6
推荐指数
0
解决办法
69
查看次数

标签 统计

generics ×1

java ×1

variadic-functions ×1