在我的应用程序中,我使用常量后缀表示每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;
}
还有一点需要注意:我在移动应用上使用此功能,这个不断变化的字段是列表中包含大量项目的列表项的一部分。
答案 0 :(得分:1)
正如其他人所说,这不会成为性能问题。字符串是不可改变的,但它们也很快(好吧,不管怎么样,这些都很短)
也就是说,如果你真的,那么每次都不想连接字符串,你必须有两个TextView
来插入它们。保持静态后缀值“km / h”,你可以只用值更新另一个。
当然,问题在于,您将拥有两倍的操作系统文本字段来进行测量,布局和显示。这可能不会是一个大问题,但它仍然比创建/处理一两个字符串更多的工作。
总而言之,任何一种方法所获得的性能损失都可以忽略不计。同样,并不明显。如果您发现自己遇到了性能问题,请对其进行分析以找出它们的位置。这是premature optimization的经典案例。
答案 1 :(得分:0)
字符串在Java中是不可变的。如果你每2秒更换一次这个字符串,你就会每2秒做一个新字符串,而且没有办法解决这个问题。
答案 2 :(得分:0)
你可以使用单位和some_value创建一个Tempo类;
然后你有你的toSTring() - 方法,它返回你的字符串,你不必更改单位,你只需要更改some_value字段。