java - 为什么不能泛化参数类?
问题描述
当您定义参数类时,您只能使用固定数量的参数。
class Container<T> {
...
}
但是,如果您想创建一个具有多个值的 Map。您必须使用 aMap<K, List<V>>
而不是Map<K, V1, V2, V3>
。为什么你不能定义类似的东西?
class Map<K, V, ...> {
...
}
解决方案
你可以,如果你实现一个Tuple
有 3 个元素的类。
class Tuple3<T1, T2, T3> {
private final T1 t1;
private final T2 t2;
private final T3 t3;
// constructor, getters, ...
}
然后你可以使用它:
Map<K, Tuple3<V1, V2, V3>>
Map
支持多种类型的值不是责任。有关该主题的更多信息,请参阅关注点分离 (SoC)。
推荐阅读
- centos8 - Centos 8,yum 更新命令不起作用。给出以下错误。找不到 php-common-7.2
- regex - 匹配包含标点符号、表情符号、特殊字符、部分汉字和字母数字的字符串
- ubuntu-20.04 - 无法在“/eventstore/db”处获取数据库的排他锁
- python - 当前脚本需要运行主文件时从父目录的Python相对导入
- android-studio - 无法在 ubuntu 20.04 上构建离子应用程序
- jquery - Jquery ui拖放+ .resizable
- python - 为什么 np.linalg.lstsq 不显示残基?我检查了参数大小,但第二个数组是空的
- python - 为什么用 get_pvgis_hourly 检索到的数据与 PV Performance Tool 中的数据不匹配?
- php - 索引文件可以有哪些扩展名?
- vba - Word VBA 替换多个空格