【问题标题】:eclipse does not match constructor method calleclipse 不匹配构造方法调用
【发布时间】:2023-03-04 05:22:01
【问题描述】:

当在 Eclipse 中按 ctrl+space 时,我记得它用于匹配 菱形运算符 中数据类型的对象。但它不再。例如:

public static void main(String[] args) {
HashMap<String, String> map = new HashMap<**MISSING**>() }

无论如何要重新打开它? 谢谢。

【问题讨论】:

  • 您需要先导入 HashMap 才能获得该功能
  • 你用的是哪个版本的java?
  • 当编译器设置为 Java 7 兼容时,Eclipse 不会填写类型,因为在 Java 7 中,在这种情况下可以省略类型参数。在 Java 6 中,它不是。

标签: java eclipse methods constructor keyboard-shortcuts


【解决方案1】:

可能是因为您使用的是 Java7 编译器,它不需要菱形运算符中的参数。

在此处了解更多信息:http://docs.oracle.com/javase/7/docs/technotes/guides/language/type-inference-generic-instance-creation.html

【讨论】:

    【解决方案2】:

    您正在运行 Java 7 吗?

    这是他们添加的名为“Type Inference for Generic Instance Creation”的新功能

    您可以替换调用构造函数所需的类型参数 具有空类型参数 () 集的泛型类 因为编译器可以从上下文推断类型参数。这个 一对尖括号被非正式地称为菱形。

    在 Java 7 之前:

    Map<String, List<String>> myMap = new HashMap<String, List<String>>();
    

    现在你可以这样做了:

    Map<String, List<String>> myMap = new HashMap<>();
    

    【讨论】:

    • 你的意思是我不必明确地把它放在菱形中,它会从上下文中找出来?
    • @Gal 如果你的编译器设置为 Java 7 是的。
    • 它是 7 ,明白了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-30
    • 1970-01-01
    • 1970-01-01
    • 2016-08-17
    • 2012-09-16
    • 2013-08-10
    相关资源
    最近更新 更多