作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想声明一个适用于三胞胎的通用类-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<>();
我应该如何正确实例化适用于多种类型的参数化类型,其中在使用站点指定的类型参数之一是可选的?
最佳答案
您可以使用Void
例如
Triplet<Integer, String, Void> t2 = new Triplet<>();
关于java - 可选的泛型类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63393807/
我是一名优秀的程序员,十分优秀!