【发布时间】:2010-11-02 06:26:06
【问题描述】:
尝试在JDK7中编译如下代码:
import java.nio.file.*;
public final class _DiamondSyntaxErrors {
public interface InterfaceA<T> {
}
public abstract static class ClassA<T>
implements InterfaceA<T> {
protected ClassA() {
}
}
public static void main(String... args) {
// no error
InterfaceA<Path> classA = new ClassA<>() {
};
// error: cannot infer type arguments for SimpleFileVisitor<>
FileVisitor<Path> visitor = new SimpleFileVisitor<>() {
};
}
}
为什么菱形语法的第二种用法不起作用?
第一次使用有什么大的不同?
【问题讨论】:
-
Margus,他正在为 Java 7 使用新功能 planned。
-
Java 7 还不是最终版本,我认为这是一个错误,您可以将它报告给 Oracle。我怀疑这里的任何人都能够对此有所了解。
-
@BjornS:好的,我会报告一个错误。我只是有经验,很多“错误”不是错误而是对某事的误解,所以我先在这里问;) -
看看问题是如何解决的,也许你可以回答说“这是一个错误。现在它已修复。”并接受这个答案。
标签: java type-inference java-7 diamond-operator