var关键字在IntelliJ中给出错误(通配符只能用作引用参数)



当我在IntelliJ中编写这段代码时,它给出了这个错误:

通配符只能用作引用形参。

我的代码

static <T extends Iterable<?>> void print(T collection) {
for (var item : collection) {
System.out.println(item + " ");
}
System.out.println();
}

我从您的代码中获得IntelliJ中的相同消息。但是,代码仍然可以编译和运行,并且工作良好,所以它似乎是IntelliJ中的一个错误。

对于您的具体情况,您的代码可以简化为这样一种方式,以避免想象的问题:

static void print(Iterable<?> collection) {
for (var item : collection) {
System.out.println(item + " ");
}
System.out.println();
}

这提供了相同的功能,但是在这里使用var没有被检测为问题。

最新更新