0
のクローンを作成します。 IMetaFactory
の新しいコピー、それで私はそれに新しいimageID
を設定することができます。私はこのようになりますインターフェイスを持つインターフェイス
mf.setImageId("abc");
どうすれば達成できますか?インターフェイス内のクローンメソッドはスタックをオーバーフローさせます(明らかに)。
のクローンを作成します。 IMetaFactory
の新しいコピー、それで私はそれに新しいimageID
を設定することができます。私はこのようになりますインターフェイスを持つインターフェイス
mf.setImageId("abc");
どうすれば達成できますか?インターフェイス内のクローンメソッドはスタックをオーバーフローさせます(明らかに)。
私はあなたがその抽象クラスからすべてのクラスを継承は、cloneメソッドを実装し、これを返す抽象クローン()メソッドを抽象クラスを使用することができると思う:
public abstract class MetaFactory {
String imageId = new String();
// some default methods
void setImageId(String id);
default String getImageId() {
return imageId;
}
public abstract MetaFactory clone();
}
と継承されたクラスのいずれかに抽象を実装
public class A extends MetaFactory {
//the lone method implementation
public MetaFactory clone(){
return this;
}
}
コンパイルのコードをチェックしましたか? – alfasin
なぜインターフェースを選択するのか、抽象メソッドclone()を使用して抽象クラスを作成してみませんか? –
メンバー変数として 'imageId'を使用するのではなく、なぜクローンが必要なのですか?そして、必要なときに新しいインスタンスを作成するのはなぜですか? –
サイドノート:インターフェイスに定義されているフィールドが「最終」であることを認識していますか? – Pshemo