java - 可选的泛型类型参数
问题描述
我想声明一个适用于三元组的泛型类-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
用作第 3 种类型参数时,编译器会给出错误 -
Triplet<Integer, String, null> t2 = new Triplet<>();
我应该如何正确实例化适用于多种类型的参数化类型,其中在使用站点指定的类型参数之一是可选的?
解决方案
你可以使用Void
例如
Triplet<Integer, String, Void> t2 = new Triplet<>();
推荐阅读
- android - Flutter geolocator 包在 IOS 应用程序上给出负纬度,在 Android 上给出正确坐标
- python - Python陷入异常流
- r - 如何在R中调整文本宽度?
- amazon-web-services - 通过用户数据将 EIP 添加到实例的 PowerShell 脚本
- parameters - 在 Pytorch 中修改可训练的亲和矩阵(参数)以计算拉普拉斯矩阵
- ios - 使用 Parse Server 在 Swift 中迭代 For In Loop
- javascript - Eclispe 中的错误 Javascript 错误
- javascript - react-native-push-notification 在第二天不重复本地计划通知
- javascript - 使用相同的表情符号反应和两个不同的嵌入来赋予两个不同的角色
- python-3.x - Cog 正在加载,但命令不起作用