私はデータのコピーを作成しようとしています。引き数として渡されたオブジェクトを次のクラスのデータメンバ変数に割り当てようとしています(これまで試みたことを含みます)メンバ変数がクローン()メソッドを実装していることを確認
public abstract class AbstractVertex implements Vertex {
private String label;
private Object data;
public AbstractVertex(String label, Object data) {
this.label = label;
//What I've tried so far :
//Method #1
if(!(data instanceof Cloneable)){
throw new RuntimeException("data's class doesn't implement a custom clone method");
}
this.data = data.clone();
//Method #2 (Just to get the idea behind this method, syntax may be completely wrong)
if((data.getClass().getMethod(clone())) == null){
throw new RuntimeException("data's class doesn't implement a custom clone method");
}
}
}
だから私の問題はObject
クラスのclone()
メソッドが保護されているので、私はこれらのいずれかの方法を実装することができないということです。しかし、クラスAbstractVertex
に任意のタイプのデータを格納できる必要があるため、格納されたdata
が実際にはパラメータで渡され、参照渡しされていないもののコピーであることを確認する必要があります。
どうすればこの問題に取り組むことができますか?
N.B:これは抽象クラスであり、継承するクラスはこのコンストラクタを使用します。