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<>();
查看名为 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<>();