Java 地图上的TypeToken及其元素

Java 地图上的TypeToken及其元素,java,gson,Java,Gson,我得到了以下结构图的映射,它将转换为gson new gson.toJsonobj;为了设置转换标识对象的规则,我使用这个构造新的TypeToken{}.getType;这个叉子很好。但是当我尝试应用这个新的TypeToken{}.getType时;我知道了{Identity@23b5810f:true}。除了更改Identity的toString方法外,还有其他方法可以为mapkey指定TypeToken吗?您确实将Identity作为key。您在输出中看到的是该标识实例的字符串表示 在代码中

我得到了以下结构图的映射,它将转换为gson new gson.toJsonobj;为了设置转换标识对象的规则,我使用这个构造新的TypeToken{}.getType;这个叉子很好。但是当我尝试应用这个新的TypeToken{}.getType时;我知道了{Identity@23b5810f:true}。除了更改Identity的toString方法外,还有其他方法可以为mapkey指定TypeToken吗?

您确实将Identity作为key。您在输出中看到的是该标识实例的字符串表示


在代码中,应该将这些键用作标识对象。它应该可以工作。

这是一种可以自定义密钥序列化方式的方法。

是的,但我想让smth(如{id:123,name:…})脱离标识,而不是{Identity@23b5810f:true}然后必须使用自己的toString方法将标识包装到自己的对象中。另一种方法是,如果是JSON,则自己编写JSON字符串,并为键/值对提供所需的任何内容。无论哪种方式,你都不会从映射中得到123键的对象,因为123是字符串而不是标识。哦,我知道了,标识是我自己类的名称,这有点模糊。例如,可以使用任何其他类代替标识,例如Person,我希望检索该类的字段。我试图在我的Identity类中修改toString以使其匹配,但我想知道是否存在诸如new TypeToken之类的构造。虽然这可能会回答这个问题,但最好在此处提供实际信息,而不仅仅是一个链接。