带有长键的映射在可序列化 class 中不起作用
Map with Long key does not work in Serializable class
我有一个可序列化 class,带有一个映射 属性。当地图具有 Long as 键时,代码不起作用,而使用 String 时代码起作用。
这不起作用:
public class UserSession implements Serializable {
Map<Long, Date> timeQuestionAsked = new HashMap<>();
}
这确实有效:
public class UserSession implements Serializable {
Map<String, Date> timeQuestionAsked = new HashMap<>();
}
奇怪的事情我也不例外。此 class 加载到 Jetty(google 应用程序引擎应用程序)的过滤器中,当我尝试将 class 与长键一起使用时,我得到一个奇怪的 "Not found"错误。
其实是我使用的数据库框架objectify引起的。原来 Maps 必须有字符串作为键:https://code.google.com/p/objectify-appengine/wiki/Entities#Maps
与Serializable无关...
我有一个可序列化 class,带有一个映射 属性。当地图具有 Long as 键时,代码不起作用,而使用 String 时代码起作用。
这不起作用:
public class UserSession implements Serializable {
Map<Long, Date> timeQuestionAsked = new HashMap<>();
}
这确实有效:
public class UserSession implements Serializable {
Map<String, Date> timeQuestionAsked = new HashMap<>();
}
奇怪的事情我也不例外。此 class 加载到 Jetty(google 应用程序引擎应用程序)的过滤器中,当我尝试将 class 与长键一起使用时,我得到一个奇怪的 "Not found"错误。
其实是我使用的数据库框架objectify引起的。原来 Maps 必须有字符串作为键:https://code.google.com/p/objectify-appengine/wiki/Entities#Maps
与Serializable无关...