【问题标题】:parameter types in angle brackets on both sides of "=" operator in java [duplicate]java中“=”运算符两侧尖括号中的参数类型[重复]
【发布时间】:2021-01-13 18:41:50
【问题描述】:

我最近开始学习java。我偶然发现了一个变量创建语法。 假设我必须创建一个 HashMap 的实例,该实例具有字符到整数的键值对。

HashMap<Character,Integer> map=new HashMap<Character,Integer>();
HashMap<Character,Integer> map=new HashMap<>();

这两者有什么区别?

【问题讨论】:

  • 在功能上,它们是相同的。在旧版本的 Java 中,您必须重复右侧部分中的类型,但现在不再需要了。
  • 第二种变体是编译器提供的语法糖。结果字节码是一样的。

标签: java variables syntax declaration instantiation


【解决方案1】:

在功能方面它们是相同的。右侧的空&lt;&gt; 基本上意味着它与左侧相同(HashMap&lt;Character, Integer&gt;)。这是一个速记,所以你不必在两边都写相同的。

这称为diamond operator,是在 Java 7 中引入的。

【讨论】:

    猜你喜欢
    • 2017-08-19
    • 2022-06-13
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    • 1970-01-01
    • 1970-01-01
    • 2021-05-29
    相关资源
    最近更新 更多