java - 实例变量与?
问题描述
考虑这个转换器接口:
public interface Converter<T1, T2>
{
public T2 convert(T1 toConvert);
public T1 reverseConvert(T2 toReverseConvert);
}
如果我现在有一个抽象类,它将转换器接口作为通用参数:
public abstract ConverterContainer<T extends Converter<?,?>>{
protected final T converter;
protected final T1 converterT1; //inherit converter T1
protected final T2 converterT2; //inherit converter T2
}
我希望能够从转换器继承类型,而不必在 ConverterContainer 中声明泛型类型。
解决方案
我希望能够从转换器继承类型,而不必在 ConverterContainer 中声明泛型类型。
您必须为派生类和父类声明所有泛型类型,但您可以将它们绑定在一起:
public abstract ConverterContainer<T1, T2, T extends Converter<T1, T2>>
extends Converter<T1,T2>
所以在这里你有你的新课
类型
T1
和T2
与父类中的确切含义(但您可以更改它们的名称,如果您愿意,重要的是它们出现在extends
子句中的位置)一个额外的类型
T
,在这种情况下被限制为 aConverter<T1, T2>
,但也可能是完全不同的东西
推荐阅读
- nestjs - 某些文件更改时重新启动应用程序
- java - 创建对象数组;最好的方法?
- graphene-python - 石墨烯中字段的多种类型
- python - 将 django 模型主键 UUID 字段迁移到 CharField
- angular - 如何在没有服务器名称前缀的情况下访问托管在 IIS 上的 Angular 应用程序?
- google-cloud-platform - 扩展 GCP AI 模型 TF 服务的问题
- reactjs - 有条件的使用效果反应
- javascript - 在 JavaScript 中定义数组的父级
- javascript - 使用以毫秒为单位的时间戳在Javascript中以天时分秒生成倒数计时器
- javascript - 试图制作一个不和谐的 js 踢命令,但它会根据用户 ID 踢