有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (2) 个答案

  1. # 1 楼答案

    规范HashMap<Long, String>()仅用于参数类型。但是,您所展示的两个用例都是不好的(我认为这是错误的),因为map对象没有参数类型。你应该做的是

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

    这和

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

    这两行之间的唯一区别是您是否希望依赖JDK的自动类型推断

    附录:

    1. 正如Boris所确认的,在JDK7之前,自动类型推断是不可能的,第二种初始化映射的方法也不会编译
    2. 如果您使用的是IDE(真的希望如此),请注意有关未经处理使用参数化类型的警告
  2. # 2 楼答案

    实际上应该是Map<Long, String> map = new HashMap<>();<>中的2个字段表示映射的键和值类型。所以在这个例子中,它是一个字符串映射,它被长值引用。在声明中包含它们将强制映射确保映射只能具有特定的键/值类型。过去,类型必须包含在赋值的<>中,但自从Java7以来就不再需要了