【问题标题】:What does a tilde in angle brackets mean when creating a Java generic class?创建 Java 泛型类时,尖括号中的波浪号是什么意思?
【发布时间】:2011-06-20 17:56:15
【问题描述】:

我正在阅读一些 JMockit 示例并找到以下代码:

final List<OrderItem> actualItems = new ArrayList<~>();

通用标识符中的波浪号是什么意思?我知道它是一元按位非运算符,但我在这里看不到操作数。

另外,我尝试编译它并得到一个错误。我只是错过了什么吗?

【问题讨论】:

    标签: java generics intellij-idea syntax tilde


    【解决方案1】:

    它只是“与声明相同”的简写。

    一些 IDE,例如IntelliJ 也使用它。

    磁盘上的文件没有这种表示法,这只是 IDE GUI 中的一种压缩。

    【讨论】:

    • 这是 Intellij 屏幕截图。
    • 仅供个人澄清 - IntelliJ 生成带有 this 表示法的 Java 源文件,iaw,带有非法 Java 内容的源文件???或者这只是源的view 并且保存的文件是正确的?
    • @Andreas_D:这只是一个视图。磁盘上的文件没问题。
    • 实际上,波浪号是灰色的(表示它不同),如果你点击它,它会展开为完整的定义。
    • 这可以在编辑器/通用/代码折叠的 intelij 设置中禁用。
    【解决方案2】:

    在 IntelliJ IDEA 中,~ 在这里:

    Set<String> associations = new LinkedHashSet<~>();
    

    表示String,与左边的声明相同。

    【讨论】:

      【解决方案3】:

      如果没有波浪号,我会说,代码已经是 Java 7。Java 7 allows the diamond operator 所以这是/将是合法的 Java 代码:

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

      (但是 - 此语法中没有波浪号)

      【讨论】:

        【解决方案4】:

        我认为这是表示任何类型的简写,在本例中为 OrderItem

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-09-30
          • 2011-09-22
          • 1970-01-01
          • 2021-11-26
          • 2018-07-15
          • 2013-03-06
          • 1970-01-01
          相关资源
          最近更新 更多