我有以下 Java 泛型问题
我有以下通用类,可以概括为:
public class MyClass<T> {
AnotherClass<T> another;
OtherClass<T> other;
...
}
where...代表与案例无关的代码。
对于类MyClass<T>来说,哪个确切类型T(截至目前)并不重要,但对于两者来说:
AnotherClass<T>
OtherClass<T>
是绝对关键的是什么泛型类型和决定在运行时将在该基地进行。
基于此,类型T
不是完全任意的,它可以是类层次结构的实例,也可以是类T_1
层次结构T_2
。
根据类的定义,该类型T
等效于Object
但我知道它等效于T_1
或T_2
实体之间没有业务关系T_1
,T_2
因此我不做:
public interface BaseT { ... }
public class T_1 implements BaseT { ... }
public class T_2 implements BaseT { ... }
public class MyClass<T extends BaseT>
如果它们不相关,为什么要使用泛型的说明:
我确定,因为即使他们是不相关的显式(试图)泛型类两种,还有是因为既有隐含关系T_1
,并 T_2
能够而且将会出现关联到代表的实体MyClass
T
将是同样的MyClass
,AnotherClass
并且OtherClass
因此,在一个实例只会有两种T_1
或T_2
但从来没有同时在同一时间。
我的问题是,我有一个选择呢,这里比其他设计为一个接口
MyClass
,并实现它都T_1
和T_2
?我可以实现类似的目标
MyClass<T extends T_1 or T_2>
吗?
亲切的问候
HUX布斯
哈士奇WWW
相关分类