Javaの道 Javaに関する
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道 >  掲示板 >  掲示板(無限ループになってしまいます。)
閲覧数:1059
掲示板(無限ループになってしまいます。)
名前
題名 無限ループになってしまいます。
質問内容

質問を評価する
(0ポイント)
以下のプログラムで無限ループになってしまいます。

class A
{
    B b = new B();
}
class B
{
    A a = new A();
}
こんな感じで2つのプログラムを参照しあって、
そこで処理が止まってしまいます。
どのようにしたら、それを食いとめられるでしょうか?
質問日時 2013-07-28 17:15:17
名前
匿名
回答内容

回答を評価する
(0ポイント)
途中で止めたいなら、何か条件があるだろう。
どうなったら止まればいいんだ?
まずはそれを明確にすること。
プログラムは書いた通りに動くんだから、明確でないものを
つくることはできない。
回答日時 2013-07-28 20:45:40
名前
回答内容

回答を評価する
(30ポイント)
両方で new したら参照し合えません。お互いに参照し合いたい場合
class A {
    B b = new B(this);
}
class B {
    final A a;
    B (A a) {
        this.a = a;
    }
}
回答日時 2013-07-28 21:54:59
名前
回答内容

回答を評価する
(0ポイント)
仙人さんありがとうございました。
仙人さんのおかげで、
プログラムまともに動くようになりました。
他に回答して下さった方もありがとうございました。
回答日時 2013-07-29 21:13:14

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。



このページのトップへ
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道_CopyrightJavaの道