java - 使用泛型类作为类型参数
问题描述
我想使用一个泛型类作为另一个泛型类的类型参数。
起初我的类定义是这样的:
class Foo<T, R extends BaseDto> {}
然后我的要求发生了变化,我不得不为我的R
类型使用包装器/持有者类
到目前为止我的尝试:(给出编译时错误:预期的类或接口Bar<R>
)
class Bar<T extends BaseDto> {
private T dto;
public Bar(T dto) {
this.dto= dto;
}
// getters and setters
}
class Foo<T, Bar<R>> {
private T entity;
private R dto;
// getters and setters
}
我不能使用它,Foo<T, Object>
因为使用此类的客户不知道他们实际上需要从Object
to 转换Bar
。
我将如何实施这种行为?
解决方案
不要更改类标题,而是替换您使用的类中的所有R
位置Bar<R>
。
所以类头保持不变:
class Foo<T, R extends CustomClass>
但是,假设您有一个 type 字段R
。这需要更改为Bar<R>
:
Bar<R> someField;
推荐阅读
- python - 使用 seaborn 可视化缺失数据的出现频率
- jquery - Jquery .attr() 在 onclick 事件期间未读取我的“数据链接”html 值
- r - R - 引用矩阵中的值
- python - 使用部分原始文件名动态命名导入 Python 的 DataFrame
- java - 如何解决:javax.xml.transform.sax.SAXSource 无法转换为 java.io.Serializable [BonitaSoft]
- angular - 窗口打开功能有效但立即关闭新打开的窗口
- jquery - jQuery 在 ASP.NET Core 2.2 Razor 视图中不可用
- javascript - Codility CyclicRotation Javascript 解决方案:空数组返回错误
- c - C中的整数和浮点除法
- django-rest-framework - 如何将 POST 数据与 Django REST Framework 中的现有实例数据合并?