0

これは私が取り組んできた学校の課題です。私は家庭教師と行ったり来たりして、彼はこれで私を助けてくれましたが、ここで明らかに欠けているものがあります. 問題のプログラムは引数「-f filename.txt」を取り、そのファイル名には次のようなもののリストがあります

FansOn, 2000
FansOff, 4000
Bell, 2000,5

プログラムはこれらの名前を取得し、リフレクションを使用してクラスを作成し、生成されたクラス (FansOn など) の action() メソッドを呼び出します。クラスごとにスレッドを作成してからスレッドを開始すると、「ファンがオンになっています」などのメッセージが生成されます。PowerOut と WindowMalfunction の 2 つのイベントで、カスタム例外 ControllerException をスローします。この例外は、呼び出されたオブジェクトを取得し、後で調べるためにGreenhouseControls呼び出されたファイルにシリアル化する必要があります。dump.out私が抱えている問題は、自分の電話をかけることができることですghcSuspend()例外呼び出しの直後にすべてのイベントを中断するメソッド。実際、この時点で、私のプログラムは大規模なスタック オーバーフローの問題を生成するだけです。ここにコード全体を投稿する必要があるかどうかはわかりません。他の誰かが私のコースを受講してコードの大部分を手渡されることを明らかに望んでいないため、皆さんに私の問題を理解してもらうために何を投稿すればよいかわかりません.

したがって、私のmain()方法では、GreenhouseControlsgc というオブジェクトを作成します。GreenhouseControls は、メイン クラス ファイルの名前です。最終的に、カスタム例外でこの gc オブジェクトが必要になります。これは、events.class ファイルで定義およびキャッチされます。

4

1 に答える 1

0

私はこれを理解しました。私のオブジェクトは run メソッドで作成されていたので、基本的には、処理が必要な最終メソッドに到達するまで、次々に呼び出された各メソッドにオブジェクトを渡す必要がありました。基本的な OO の概念が欠けていたため、最終的に無限ループが発生し、スタックがオーバーフローしました。だから今はみんな元気です。

于 2011-12-09T03:48:21.743 に答える