尝试使用clone()时出现“ A无法转换为B”错误

时间:2020-10-10 06:34:45

标签: java casting clone

我不会发布整个代码,因为我想尝试自己修复此问题,但也许有人可以指出正确的方向。 我正在使用的代码(编辑以显示更多信息):

class GeometricObject implements Cloneable{
    private String color = "white";
    private boolean filled;
    private java.util.Date dateCreated;
    private double side;
(some other stuff before this)
}
public abstract class Octagon extends GeometricObject implements Comparable, Cloneable {
    public static void test() throws CloneNotSupportedException {
        GeometricObject obj1 = new GeometricObject("white", true, 5) ;
        Octagon obj1Clone = (Octagon)((Octagon)obj1).clone();
        }

    public Object clone() throws CloneNotSupportedException {
            Octagon obj1Clone = (Octagon) super.clone();
            return obj1Clone;
    }

运行代码后出现的错误代码是
无法将task3.Octagon $ 1强制转换为task3.Octagon 为了使一切正常,我做了 通过创建对象obj GeometricObject obj1 = new GeometricObject("white", true, 5) {}; 由于它是GeometricObject的对象,因此,在尝试解决此问题时,我已经将implememts Cloneable()放置了,我已经尝试将GeometricObject放入Octagon obj1Clone = (Octagon)((Octagon)obj1).clone();的不同部分中,以尝试在我做错的情况下走运。我完全理解您是否由于缺少我给您的代码而无法帮助我。 而且,在您说出来之前,我知道clone()如今已很少使用,但这是一项任务,因此我必须使用它。 谢谢!

0 个答案:

没有答案