java - JDK7 : Diamond inference syntax confusion

标签 java type-inference java-7 diamond-operator

尝试在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<>() {
    };
  }
}

为什么菱形语法的第二种用法不起作用?

与第一次使用的最大区别是什么?

最佳答案

提交了一个 bug report .
其他人提交 similar bug report 同样的例子 ;)
现在已修复 ( here )。

关于java - JDK7 : Diamond inference syntax confusion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4075394/

相关文章:

java - 我有什么办法可以标记“仅在重试后才能成功”的任务?

generics - 具有通用参数和使用类型参数的方法的 Kotlin 抽象类

java - Apache HttpComponent 客户端将 cookie 保存到文件中并将其用于将来的请求(使用 CookieStore)

java - 如何推断类型,其中返回类型也是方法参数的上限和下限

java - 使用 Java nio 文件,重命名目录,但如果已经存在,则将文件移动到现有目录

Java 7 - LinkOption - 为什么 NOFOLLOW_LINKS 是唯一可用的选项?

java - 泛型方法的返回类型

java - PrintStream 类型中的方法 println(int) 不适用于参数 (String, int, int, int)

Java:如何使用数据进行 API 调用?

typescript - 如何让 typescript 推断函数的返回类型