首页 > 解决方案 > 是否可以使用泛型来扩展具有泛型的类?

问题描述

这方面的一个例子是 SBHttpRequest<D extends SBHttpDeserializer<?>, RBT> ::这编译得很好,但类型不受响应类的限制

SBHttpRequest<D extends SBHttpDeserializer<RT>, RBT> :这不编译:RT 无法解析为类型

我也试过SBHttpRequest<D<RT> extends SBHttpDeserializer<RT>, RBT>:它告诉我 < > 在错误的位置

D 是扩展 SBHttpDesrializer 的反序列化器类 RT 是响应类型或反序列化器将响应更改为 RBT 的类型是请求主体类型(在这种情况下始终为 byte[])

我想使用响应类型来限制类中的某些条件并清除一些原始类型编译器警告。

标签: javahttpgenerics

解决方案


为返回类型添加泛型类型参数,或者在您想要锁定类型时创建一个类/接口:

class ByteArraySBHttpDeserializer implements SBHttpDeserializer<byte[]> {}

然后:

SBHttpRequest< ByteArraySBHttpDeserializer, RBT>

它有点笨拙,但泛型也是如此。


推荐阅读