假设我有两个类(class)。 Pair
:
public class Pair<X, Y> {
public X x;
public Y y;
public Pair(X x , Y y) {
this.x = x;
this.y = y;
}
}
和类Triple
:
public class Triple<X, Y, Z> {
public X x;
public Y y;
public Z z;
public Triple(X x , Y y, Z z) {
this.x = x;
this.y = y;
this.z = z;
}
}
我想创建一个类 Test
不改变类头(不能做 Test<X, Y, Z>
):
public class Test {
...
}
在这个类中应该有一个方法,它接受 Triples
的列表。并且应该返回一个 Map,其中三元组的 x 值作为键,三元组的 y 和 z 值作为映射的值。
如何在不更改类 header 的情况下执行此操作?
最佳答案
你可以的。您需要使方法通用而不是它所在的类。
class Test {
static <X, Y, Z> Map<X, Pair<Y, Z>> makeMap(List<Triple<X, Y, Z>> triples) {
// your implementation
}
}
方法可以是static
或非 static
.在任何一种情况下,通用参数 <X, Y, Z>
出现在返回类型之前。
关于java - 在不改变类头的情况下使用泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49575025/