继承的方法 Object.clone() 无法隐藏公共抽象方法
2022-09-04 22:15:48
所以,我有一点疯狂的代码,它使编译器在我面前吐了几个小时以下错误:
The inherited method Object.clone() cannot hide the public abstract method in IOrderable<T>
罪魁祸首类如下(错误出现在泛型的 T 中):
public class MyInterval<T extends Xpto & Successorable<T>> implements Cloneable {
public MyInterval<T> clone(){
MyInterval<T> it = null;
try {
it = (MyInterval<T>) super.clone();
it.max = it.max.clone();
it.min = (T) it.min.clone();
} catch (CloneNotSupportedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return it;
}
}
public interface Xpto {}
public interface Successorable<Y> extends IOrderable<Y> {
Y suc();
}
interface IOrderable<J> extends Rankable<J>, Cloneable {
boolean greaterEq(J e);
J clone();
}
public interface Rankable<P> {
int rank(P e);
}
是的,它们看起来有点随机。它们的存在只是为了在我正在做的编译器/类似java_byte_code_instrumentation的项目中测试一些奇怪的东西。如何在保持逻辑不变的同时完成这项工作?
谢谢