如何将复杂泛型方法应用于具有通配符泛型类的类?

时间:2014-09-23 10:58:49

标签: java generics

有类似的东西:

<T> Identifier<Set<T>> myMethod(Iterable<? extends Element<Identifier<T>>> input) {…}
class MyClass implements Element<Identifier<?>> {…}
Iterable<MyClass> a = …;

我如何将a传递给myMethod以获取Identifier<Set<?>>

2 个答案:

答案 0 :(得分:1)

只需blabla.myMethod((Iterable) a);

更具体地说:

Identifier<Set<?>> setIdentifier = blabla.myMethod((Iterable) a);

答案 1 :(得分:0)

如果您可以控制myMethod,请使其签名更加灵活:

<T> Identifier<Set<T>> myMethod(Iterable<? extends Element<Identifier<? extends T>>> input)

虽然这足以解决您的问题,但这将是最灵活的:

<T> Identifier<Set<T>> myMethod(Iterable<? extends Element<? extends Identifier<? extends T>>> input)

另见: