Nic*_*mer 8 java generics nested-generics
我试图弄清楚如何让泛型跳过篮球.
我有:
interface Root { }
interface Middle extends Root { }
class Type implements Root { }
Run Code Online (Sandbox Code Playgroud)
还有很多"Subtype"类:
class Subtype1 extends Type implements Middle { }
class Subtype2 extends Type implements Middle { }
...
Run Code Online (Sandbox Code Playgroud)
我要的是声明一个类有两个类型参数T和S,在T被束缚Type和S被束缚T和Middle.
我无法看到泛型的方法来确保S扩展T和实现Middle.我想要的是:
class Handler<T extends Root, S extends T, S extends Middle>;
Run Code Online (Sandbox Code Playgroud)
要么
class Handler<T extends Root, S extends <T extends Middle>>;
Run Code Online (Sandbox Code Playgroud)
但当然两者都不合法.也许有一些我不知道的魔法?
SubType尝试引入一个扩展和实现的抽象类Middle,以便其类型可以在Handler.
abstract class MiddleSubtype extends Subtype implements Middle { }
Run Code Online (Sandbox Code Playgroud)
然后,
class Handler<T extends Root, S extends MiddleSubtype> { //...
Run Code Online (Sandbox Code Playgroud)
编辑:更新问题后,相同的想法将如下所示:
abstract class MiddleType extends Type implements Middle { }
class Subtype1 extends MiddleType { }
class Subtype2 extends MiddleType { }
...
class Handler<T extends Root, S extends MiddleType> { //...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
172 次 |
| 最近记录: |