假设我有一些class Edge<A, B>
与提供参数化的子类,如class MyEdge extends Edge<MyNodeType, MyOtherNodeType>
Java泛型名称类型参数,而不需要它
我现在宣布使用另一个类Edge
S作为这样:
class EdgeHolder<E extends Edge<A, B>, A, B> {
A getFirstNode();
B getSecondNode();
}
和使用它如下:
EdgeHolder<MyEdge, MyNodeType, MyOtherNodeType> var = ...
这感觉非常笨重,特别是因为在MyEdge
的定义中指定了和MyOtherNodeType
。
我很想能够名参数A
并在EdgeHolder
定义B
因为我需要编译时间上它的方法返回类型类型检查,但我不希望有当我声明EdgeHolder
类型的变量时,指定A
和B
。
有没有办法做到这一点(或类似的东西)?
如果不是,为什么不呢?
http://stackoverflow.com/questions/2382912/extract-generic-types-from-extended-generic – assylias
为什么你首先需要EdgeHolder?为什么你要为每种特定类型需要EdgeHolder? – bashnesnos
@bashnesnos我试图让问题中的示例尽可能简单,但实际上它实际上是多边的集合。 –