我正在我的应用程序中实现一个标记系统。我有一个所有Tags
要标记对象的主列表。对象可以有多个标签,这些标签是对主列表中标签的引用。
当我将数据保存为 json 文件,然后在我的应用程序再次运行时加载它时,这些引用会丢失(tagInMainList == referenceToTag
不保留)。
我怎样才能解决这个问题?
我会非常关心身份,除非您需要最小化内存使用和/或其他大量优化。恐怕,您需要一个自定义反序列化器。有了它,您可以简单地return tag
使用return myTagInterner.intern(tag)
Guava 的interner替换。
如果你松散地耦合你的引用,以至于它们只包含在地图查找中使用的键值怎么办?你仍然可以支持类似tagInMainList.equals(keyBasedReferenceToTag)
or的等式tagInMainList.getKey().equals(keyBasedReferenceToTag)
。JSON 会更简单,甚至可能更简洁。