【问题标题】:JDK7: Diamond inference syntax confusionJDK7:钻石推理语法混乱
【发布时间】: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


【解决方案1】:

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

【讨论】:

  • 是的,这可能是唯一可能的“正确”答案,但由于我是作者,我有 2 天的时间才能接受这个;)
猜你喜欢
  • 1970-01-01
  • 2017-06-11
  • 2020-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多