2

私のアプリケーションでは、2 秒ごとに更新されるフィールド値に定数サフィックスを使用しています。たとえば、「some_value km/h」のように、km/h は定数サフィックスです。現在、私は として宣言された定数サフィックスを使用して値を単純に連結していますが、static final String2秒ごとに new を作成していることを知っていStringます。それを行うためのより良い方法はありますか?

編集: コード例:

public static final String KM_SUFFIX = " km/h";

public void String getFormattedValue(int val) {
    return val + KM_SUFFIX;
}

もう 1 つ注意: 私はこれをモバイル アプリで使用しています。この常に変化するフィールドは、多数のアイテムを含むリスト内のリスト アイテムの一部です。

4

3 に答える 3

1

他の人が言ったように、これはパフォーマンスの問題にはなりません。文字列は不変ですが、高速でもあります (とにかく、これらのような短いものはそうです)。

とはいえ、毎回文字列を連結したくない場合は、文字列を入れるために 2 つsTextViewが必要になります。もう一方は値だけです。

もちろん、これの問題は、OS が測定、レイアウト、および表示するテキスト フィールドが 2 倍になることです。それはおそらく大した問題ではありませんが、文字列を 1 つまたは 2 つ作成/破棄するよりもまだ多くの作業が必要です。


要約すると、どちらの方法でも得られるパフォーマンスへの影響はごくわずかです。のように、目立たない。パフォーマンスの問題が発生していることがわかった場合は、プロファイルを作成して、問題が発生している場所を見つけてください。これは、時期尚早の最適化の典型的なケースです。

于 2013-03-08T18:08:43.417 に答える
0

文字列はJavaでは不変です。2秒ごとに文字列を変更する場合は、2秒ごとに新しい文字列を作成することになり、それを回避する方法はありません。

于 2013-03-08T17:41:14.060 に答える
0

unitとsome_valueを使用してTempoクラスを作成できます。

次に、文字列を返すtoSTring()-メソッドがあります。単位を変更する必要はなく、some_valueフィールドを変更するだけで済みます。

于 2013-03-08T17:43:47.977 に答える