0

私は 2 つの Java クラスを持っています。1 つは MultiThreader と呼ばれ、もう 1 つは ConnectionUtility です。静的関数を作成したかったので、2 つのクラスのいずれかの任意の場所にテキスト フィールドにテキストを設定できます。ConnectionUtility クラスから textField にアクセスするのは簡単です。 .setText("textToShow") の使用

ただし、他のクラスのメソッドを使用すると、静的メソッドを使用するたびに ConnectionUtility オブジェクトをインスタンス化する必要があります。これは、Android または Java でのオブジェクトの作成が高価であるため、リソースの浪費のように思えます。ここに示されている例よりもこれを行うためのより良い方法はありますか? この例はリソースの不適切な使用ですか?

public static void printOutText(String string){
    ConnectionUtility cu = new ConnectionUtility();
    cu.jTextField1.setText(string);
    cu = null;
}

編集:質問の状況の一部は、jTextField1オブジェクトを静的にすることを避けたいということです。この条件の場合、クラスメンバー変数のみになります

2つ編集:言及するのを忘れていましたが、これはJavaデスクトップアプリ用であり、Androidアプリ用ではありません。それを明確にしていない私の間違い。私は Android に慣れていますが、以前は Java JFrame で多くのことをしたことがありません。

4

2 に答える 2

0

おそらく、そのためにハンドラーとメッセージパッシングを使用する必要があります。ここに良い例があります:

http://www.vogella.com/articles/AndroidBackgroundProcessing/article.html

于 2013-09-30T07:14:23.570 に答える
0

Java でのオブジェクトの作成を避けるべきかどうかについての議論があります。特にデスクトップ環境では、オブジェクトのインスタンス化についてあまり心配する必要はないと思います。結局のところ、オブジェクト指向プログラミング言語での作業です。すべてを静的な実装に減らしたら、それは何の役に立つでしょうか? これは oo 言語で手続き型コードを書くことになります!

ほとんどの場合、パフォーマンスの問題は、ネイティブ言語の機能を使用することではなく、アルゴリズムの選択を誤ったことが原因で発生します。そのレベルで本当にパフォーマンスの問題に直面している場合は、代わりに C/C++ に切り替えることを検討する必要があります。

于 2013-09-30T08:22:03.553 に答える