如何在Java类中存储UUID字段?

时间:2018-01-23 13:15:02

标签: java android performance android-recyclerview

我在一个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而不是简单的字符串有什么好处吗?

1 个答案:

答案 0 :(得分:3)

如果调用者没有将UUID字符串转换回字符串,则确实可以将值存储为String

此解决方案的一个缺点是缺少类型检查。该字符串不得包含UUID,但可以包含其他任何内容。