假设我有这样一个类和方法:
class MyClass<T> {
void doStuff(Wrapper<T> wrapper) {
//impl.
}
}
参数“wrapper”的通用边界可以修改为 Wrapper<? extends T>
使方法接受t的子类型,并且 Wrapper<? super T>
接受超级类型。但是,有没有办法修改myclass,使其同时接受t的子类型和超级类型(而不是任何类型),并且只有一个方法名(可能存在过载)
我可以跟你一起去 Wrapper<?>
当然,但是“accept anything”与“accept something that's in the class hierarchy for t”不同。我也可以做两种不同的方法,一种是 <? super T>
还有一个是 <? extends T>
,但是这些方法需要不同的名称,因为擦除后签名是相同的。
注:出于好奇,请考虑这个问题。
1条答案
按热度按时间jei2mxaa1#
你可以试试下面的方法
但需要再次检查是否满足您的要求。