2

在我的应用程序中,我对每 2 秒更新一次的字段值使用常量后缀,例如:“some_value km/h”,其中 km/h 是常量后缀。目前,我只是将值与声明为 的常量后缀进行简单的连接static final String,但我知道每 2 秒我都会以这种方式创建新的String. 有更好的方法吗?

编辑: 代码示例:

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

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

另一个注意事项:我在移动应用程序上使用它,这个不断变化的字段是列表中包含大量项目的列表项的一部分。

4

3 回答 3

1

正如其他人所说,这不会是性能问题。字符串是不可变的,但它们也很快(好吧,无论如何,像这样的短字符串)

也就是说,如果你真的,真的不想每次都连接字符串,你必须有两个TextViews 来把它们放进去。一个只需要保存静态后缀值“km/h”,你可以更新另一个只有价值。

当然,这样做的问题是您将拥有两倍多的文本字段供操作系统测量、布局和显示。这可能不是什么大问题,但它仍然比创建/处理一两个字符串要多。


总而言之,任何一种方法对性能的影响都可以忽略不计。如,不明显。如果您发现遇到性能问题,请对其进行分析以找出问题所在。这是过早优化的经典案例。

于 2013-03-08T18:08:43.417 回答
0

字符串在 Java 中是不可变的。如果您每 2 秒更改一次字符串,那么您每 2 秒就创建一个新字符串,并且没有办法解决这个问题。

于 2013-03-08T17:41:14.060 回答
0

您可以使用单位和 some_value 创建一个 Tempo 类;

然后你有你的 toSTring()- 方法,它返回你的字符串,你不必改变单位,你只需要改变 some_value 字段。

于 2013-03-08T17:43:47.977 回答