私はそれをすべて自分で学習しようとするプログラミングにはとても新しいです。私は解決できない問題に直面しており、私はオンラインで良い答えを見つけることができませんでした。Javaオブジェクトへの循環参照を取り除くにはどうすればいいですか?
私はインターフェイスを実装する一連のクラスを持っています。そのうちの1つは、他のタイプのオブジェクトへの参照を提供する必要があります。私は以下のコードを簡略化して掲載していますが、それはすべて正しいとは限りませんが、あなたが理解できることを願っています。
私が問題にしているのは、私が下記のメインメソッドのような循環参照を取り除くメソッドを書くことができないことです。私はグラフや再帰アルゴリズムについて多くのことを読んでいますが、まだ答えは見つけられませんでした。どんな助けもありがとう。ありがとうございました!
public class ReferenceObject implements A {
A reference;
public void setReference(A reference){
this.reference=reference;
}
public Object getValue(){
return reference.getValue;
}
}
public static void main(String[] args) {
ReferenceObject r1 = new ReferenceObject();
ReferenceObject r2 = new ReferenceObject();
ReferenceObject r3 = new ReferenceObject();
r1.setReference(r2);
r2.setReference(r3);
r3.setReference(r1);
}
循環参照を取り除く必要はありません。 r1〜r3が範囲外になると、それらはガベージコレクションされます。 – markspace
私はあなたの必要性を理解していません。何を実装しようとしていますか? – davidxxx
あなたは[グラフのサイクルを検出している](http://stackoverflow.com/questions/261573/best-algorithm-for-detecting-cycles-in-a-directed-graph)について話していますか? – azurefrog