私は、matlab UIを使ってJavaアプリケーションを作成しています。このため 、ここで説明したように、私はMathWorks社のMATLABでJavaオブジェクトを使用します。 http://www.mathworks.com/help/techdoc/matlab_external/f4873.htmlmatlabのJavaクラスを使用したクリーニングの問題
私は何をしたいことは、このようなMATLAB関数を作成されています。私はfooは、それならばとまったく同じ動作をしたい
function [] = foo
o = javaObject('myObject',parameters...);
o.memberfunction(parameters...);
をJavaの主な機能でした。 fooの実行終了時にすべてがクリーンアップされるようにするには、静的クラスフィールドも必要です。問題が発生し
例:
first run foo:
static fields are set to some values V
second run foo:
static fields are still set to values V
私は、インスタンス0をクリアしようとしたが、これは何も解決しませんでした(後にMATLABは、明らかにインスタンスをクリーンアップしましたが、一方で)(かなり長いないクラスフィールド) 。
すべてのインスタンスでよく共有されるため、インスタンス変数ではありません。私はすべてのインスタンスに同じインスタンスへの参照メンバを与えることができますが、私は、(コンストラクタ内の)インスタンスへの共通の参照を渡すことを暗示するので、メモリの割り当てはそのクラスのコンテキスト内ではなく抽象化/変調の目的私はこれをクラスの文脈の中に入れる必要があります。私は、私のアプリケーションをどのように振る舞うべきか、理論的には静的なフィールドを使うことができるはずの理由を理解するために投稿を編集しました。 – codelidoo
終了したら、fooはMatlabを終了できます。 –