【发布时间】:2020-08-13 11:06:15
【问题描述】:
我想声明一个适用于三元组的泛型类 - key、value 和 metadata。
key 和 value 字段是必填字段,但 metadata 字段是可选字段。
class Triplet<K,V,M>{
K key;
V value;
M metadata;
//setters and getters
}
在使用上面的类时,我必须像下面这样初始化它 -
Triplet<Integer, String, String> t1 = new Triplet<>();
// Setters
但对于某些用例,metadata 是可选的。所以当我使用null 作为第三个类型参数时,编译器会报错-
Triplet<Integer, String, null> t2 = new Triplet<>();
我应该如何正确实例化适用于多种类型的参数化类型,其中使用站点指定的类型参数之一是可选的?
【问题讨论】: