Open
Description
请描述您的问题
询问有关本项目的使用和其他方面的相关问题。
问题描述如题,使用版本: 2.0.57
import com.alibaba.fastjson2.JSON;
import org.junit.Assert;
import java.util.LinkedHashMap;
import java.util.Map;
public class Test {
public static class MyPersistentData {
private Map<String, String> contentMap = new LinkedHashMap<>(64);
public void setContentMap(Map<String, String> contentMap) {
this.contentMap = contentMap;
}
public Map<String, String> getContentMap() {
return contentMap;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof MyPersistentData)) return false;
MyPersistentData that = (MyPersistentData) o;
return getContentMap() != null ? getContentMap().equals(that.getContentMap()) : that.getContentMap() == null;
}
@Override
public int hashCode() {
return getContentMap() != null ? getContentMap().hashCode() : 0;
}
}
@org.junit.Test
public void test() {
MyPersistentData myPersistentData = new MyPersistentData();
Map<String, String> contentMap = new LinkedHashMap<>(64);
contentMap.put("12", "12");
contentMap.put("abc", "123");
contentMap.put("bcd", "341");
myPersistentData.setContentMap(contentMap);
String json = toJSONString(myPersistentData);
MyPersistentData newMyPersistentData = parseObject(json, MyPersistentData.class);
Assert.assertNotNull(newMyPersistentData);
Assert.assertNotNull(newMyPersistentData.getContentMap());
Assert.assertTrue(newMyPersistentData.getContentMap().equals(myPersistentData.getContentMap()));
Assert.assertTrue(newMyPersistentData.equals(myPersistentData));
//这里报错了,使用的是HashMap
Assert.assertTrue(newMyPersistentData.getContentMap() instanceof LinkedHashMap);
}
public static <T> T parseObject(String text, Class<T> clazz) {
return JSON.parseObject(text, clazz);
}
public static String toJSONString(Object obj) {
return JSON.toJSONString(obj);
}
}