我在一个Android项目上工作,并且UUID字段存在性能问题。这是项目示例代码(不是我写的):
public class OrderVo {
@Expose
@SerializedName("UId")
private UUID mGuId;
public String getGuId() {
return UUIDHelper.toString(mGuId);
}
public void setGuId(String guId) {
mGuId = UUIDHelper.fromString(guId);
}
...
此对象在RecyclerView中使用,其方法在适配器的bindData中调用。这会导致性能问题导致每个滚动调用getGuId()并且从UUID创建String对象,并且GC正在积极地清理那些对象(这会导致快速滚动时出现延迟)。将mGuId字段保留为UUID而不是简单的字符串有什么好处吗?
答案 0 :(得分:3)
如果调用者没有将UUID字符串转换回字符串,则确实可以将值存储为String
。
此解决方案的一个缺点是缺少类型检查。该字符串不得包含UUID,但可以包含其他任何内容。