我希望返回类型参数是类型参数和方法参数类型参数的超类。泛型方法返回超类型的类型参数和方法参数类型参数
这编译:
import java.util.List;
interface Foo<A> {
<R, B extends R> List<R> eg1(List<B> unit);
<R> List<R> eg2(List<? extends R> unit);
}
但并不强制R必须是A的超也。我怎么做?
实际上,我想要做的事喜欢在这些表示:
<B, R super A & B> List<R> func(List<B> unit);
<B> List<? super A & B> func(List<B> unit);
但是那些没有编制的,当然。
有两个目的,以这样的:
- 我希望能够将结果分配给任何超类A和B.
- 两者在这种方法的实现,我需要的结果类型可以包括A和B两者。所以编译的第一个例子将不起作用,因为它们不允许我在结果中放置一个A.
如果允许'R'是任何超类型的'A',并且'B'被允许是'R'的任何子类型,那么这相当于只允许'B'被允许为任何东西,因为' R'始终可以是Object。你想要完成什么样的实际任务?你认为需要这些仿制药? – 2013-03-20 22:19:27
@LouisWasserman我在问题中添加了详细信息以回答评论的第一部分。至于第二个......实际上,我应该先从事这方面的工作。实现这个接口导致了这个问题,我认为这回答了我的问题。 – mentics 2013-03-20 23:08:45