有没有办法使用泛型说“此方法返回this
”?有没有办法在Java中说“方法返回这个”?
当然,我想在子类中重写此方法,所以声明应该与@Override
一起使用。
下面是一个例子:
class Base {
public Base copyTo (Base dest) {
... copy all fields to dest ...
return this;
}
}
class X extends Base {
@Override
public X copyTo (X dest) {
super.copyTo (dest);
... copy all fields to dest ...
return this;
}
}
public <T extends Base> T copyTo (Base dest)
不会在所有的工作:我碰到一个“类型不匹配:不能从基地至T转换”。如果我强制强制转换,覆盖失败。
除了我的(当然,马丁·奥德斯基的)的方式;详细上面 – 2009-07-07 08:32:26
是的,虽然有没有实现这种事情的方式没有“这个”*实际*是这个。 – 2009-07-07 08:34:21
那么,“这个”可以是任何实现列表接口的东西,因为擦除可能是任何事情的列表。我会感兴趣,如果你可以完全愚弄它 – 2009-07-07 08:40:55