-3

如果我有一个具有 clone() 方法的代码,但我知道这里的重复代码很糟糕(在那个应用程序 egbank 应用程序中),我该怎么办???clone() 方法在实现 IAccount 的 bankOfAmerica 中(IAccount 有 clone() 方法头!)一个人已经覆盖了 bankOfAmerica 类中的 clone() 方法,我不想在这里制作重复的代码。应该怎么做我使用那个 clone() 方法。

克隆()方法:

public IAccount clone() throws CloneNotSupportedException {
      return (BankOfIranSavingsAccount) super.clone();
} 
4

1 回答 1

1

返回 '​​super.clone()' 作为 clone 的实现几乎肯定是错误的。如果您查看clone的 javadoc,您会看到期望是如果 b 是 a 的克隆,那么以下通常应该是正确的

a != b;
a.getClass() == b.getClass();
a.equals(b);

虽然这些不是硬性规定,而且 clone 的含义实际上取决于实现类,但如果您的实现不符合这些期望,您应该有一个非常好的理由,最好是有据可查的。通常,任何调用 super.clone() 以创建其返回值的克隆方法都将无法通过第二次测试。

于 2009-07-02T23:39:02.630 回答