多级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上的适当的界限是不明显的,如果甚至是一个,所以它不会自动传播;你必须指定它.) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读