java - 是否可以使用泛型来扩展具有泛型的类?
问题描述
这方面的一个例子是
SBHttpRequest<D extends SBHttpDeserializer<?>, RBT>
::这编译得很好,但类型不受响应类的限制
SBHttpRequest<D extends SBHttpDeserializer<RT>, RBT>
:这不编译:RT 无法解析为类型
我也试过SBHttpRequest<D<RT> extends SBHttpDeserializer<RT>, RBT>
:它告诉我 < > 在错误的位置
D 是扩展 SBHttpDesrializer 的反序列化器类 RT 是响应类型或反序列化器将响应更改为 RBT 的类型是请求主体类型(在这种情况下始终为 byte[])
我想使用响应类型来限制类中的某些条件并清除一些原始类型编译器警告。
解决方案
为返回类型添加泛型类型参数,或者在您想要锁定类型时创建一个类/接口:
class ByteArraySBHttpDeserializer implements SBHttpDeserializer<byte[]> {}
然后:
SBHttpRequest< ByteArraySBHttpDeserializer, RBT>
它有点笨拙,但泛型也是如此。
推荐阅读
- php - 查询字符串值在 Javascript 中不起作用
- c# - 如何在 OnPropertyChanged 中将其作为字符串参数传递时避免硬编码 WPF MVVM 属性名称
- ruby-on-rails - 使用 devise gem 时是否可以为访问者添加一个页面?
- java - java spring Long[](数组)类型
- facebook - Google Ads 中的 Facebook 归因跟踪模板
- django - 为什么可以“多种方式”导入UpdateView
- javascript - 通过单击复选框(Vue.js)切换 div
- php - 提交按钮已被点击
- angular - Angular 6:使用延迟加载在同一页面上加载多个模块
- javascript - for 循环行为“TypeError:无法读取未定义的属性‘长度’”