加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

多级Java通用继承使用扩展于通用参数

发布时间:2020-12-14 16:18:40 所属栏目:Java 来源:网络整理
导读:我有 public class FirstT {}public class SecondT extends SomeConcreteClass extends FirstT {}public class ThirdT extends SecondT {} //Compile-time error 我得到编译时错误 Type argument T is not with bounds of type-variable T. 当我构成第三个时
我有
public class First<T> {}

public class Second<T extends SomeConcreteClass> extends First<T> {}

public class Third<T> extends Second<T> {} //Compile-time error

我得到编译时错误

Type argument T is not with bounds of type-variable T.

当我构成第三个时,我想要将通用参数赋给SomeConcreteClass(或其派生类),如果我提供了不属于SomeConcreteClass继承的类型,则抛出运行时错误层次结构.

我会认为第二个声明中的规范将简单地向下传播,即它应该在第三个声明(和任何实例化)中隐含.

有什么错误?

解决方法

所有你需要的是
public class Third<T extends SomeConcreteClass> extends Second<T>

你只需要重新定义绑定.它不像你想像的那样传播.

(我不是这个原因的积极因素,但我有一些猜测 – 如果它是第三个< T>扩展第二个< Foo>?T上的适当的界限是不明显的,如果甚至是一个,所以它不会自动传播;你必须指定它.)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读