Java 中的 <> 是什么意思?

What does <> in Java mean?

查看名为 mongojack 3.0 的库 - https://github.com/mongojack/mongojack。这个库包含一个名为 JacksonMongoCollection.java 的文件它有一个方法...

  public JacksonCollectionKey<TResult> getCollectionKey() {
        return new JacksonCollectionKey<>(getMongoCollection().getNamespace().getDatabaseName(), getMongoCollection().getNamespace().getCollectionName(), getValueClass());
    }

这个returnsJacksonCollectionKey<>

这个库编译得很好。

我以前没有见过空泛型类型定义。这是如何工作的?

空泛型类型括号用于编译器可以从上下文推断泛型类型的地方。在您的情况下,编译器会将 TResult 插入空括号中。

这是 Java 中 "Type Inference" 的一个例子。在某些情况下,可以省略显式类型信息,否则很明显缺少的类型是什么。

在您的示例中,方法 returns JacksonCollectionKey<TResult>,因此,没有必要指定类型参数,因为它是由 return 类型给出的。

另一个常见的例子是:

List<String> list = new ArrayList<>();