作者:hz--Ives | 来源:互联网 | 2022-12-08 10:23
输入:
public static void main(String[] args) {
final String key = "some key";
final String value = "some value";
Map map1 = new HashMap(){{put(key, value);}};
System.out.println(new Gson().toJson(map1) + " " + map1.get(key));
Map map2 = new HashMap<>();
map2.put(key, value);
System.out.println(new Gson().toJson(map2) + " " + map2.get(key));
}
输出:
null some value
{"some key":"some value"} some value
Process finished with exit code 0
Greg Kopff..
21
因为map1
,您已经创建了一个匿名子类.假设您main()
调用了包含的类ExampleClass
,则:
System.out.println(map1.getClass().getName())
打印出来:
ExampleClass$1
打印课程以map2
获得收益:
java.util.HashMap
至于Gson没有将其序列化的确切原因--Gson使用类名来查找转换器.如果您使用以下方法将其序列化:
System.out.println(new Gson().toJson(map1, HashMap.class));
......它按预期工作.
1> Greg Kopff..:
因为map1
,您已经创建了一个匿名子类.假设您main()
调用了包含的类ExampleClass
,则:
System.out.println(map1.getClass().getName())
打印出来:
ExampleClass$1
打印课程以map2
获得收益:
java.util.HashMap
至于Gson没有将其序列化的确切原因--Gson使用类名来查找转换器.如果您使用以下方法将其序列化:
System.out.println(new Gson().toJson(map1, HashMap.class));
......它按预期工作.