Gson 反序列化抛出 FutureTask 错误
Gson deserialization throws FutureTask error
破案
更新:问题是当 GSON 进入 运行 线程时,它在尝试反序列化为 Long 对象时遇到问题,我所要做的就是通过添加将带有长数字的字符串转换为另一个 String 对象,然后才将其转换为 Long 转换为我的 Long object.Hope 这将帮助其他人。
所以我使用 Kafka,在 kafka 从 Topic 给我的一些数据中,我需要反序列化它(我序列化并放入主题的相同数据)。但这会抛出 FutureTask 错误。我如何序列化:
mKafkaProducer.sendMessage(
LoadBalancingManager.getGson().toJson(mCentralHbKey, CentralMetaMessageKey.class),
LoadBalancingManager.getGson().toJson(fcsTakenWithTime,
new TypeToken<HashMap<ArrayList<Integer>, Long>>() {
}.getType()));
这是我检查是否是同一个对象后反序列化的方式:
Map<ArrayList<Integer>, Long> incerc = LoadBalancingManager.getGson().fromJson(
record.value(), new TypeToken<HashMap<ArrayList<Integer>, Long>>(){}.getType());
序列化有效。
我在同一线程中完成了其他反序列化并且它们有效,想不出哪里出了问题...
我正在使用记录器,我的堆栈跟踪没有显示任何错误,但我按照这些步骤操作,返回我的反序列化后它就出现了:FutureTask error
问题是 GSON 在尝试反序列化为一个 Long 对象时遇到问题,而它是一个 运行 线程,我所要做的就是通过添加字符串的一部分来手动反序列化我的字符串将 long 数字转换为另一个 String 对象,然后才将其转换为 Long 转换为我的 Long object.Hope 这将帮助其他人。
破案
更新:问题是当 GSON 进入 运行 线程时,它在尝试反序列化为 Long 对象时遇到问题,我所要做的就是通过添加将带有长数字的字符串转换为另一个 String 对象,然后才将其转换为 Long 转换为我的 Long object.Hope 这将帮助其他人。
所以我使用 Kafka,在 kafka 从 Topic 给我的一些数据中,我需要反序列化它(我序列化并放入主题的相同数据)。但这会抛出 FutureTask 错误。我如何序列化:
mKafkaProducer.sendMessage(
LoadBalancingManager.getGson().toJson(mCentralHbKey, CentralMetaMessageKey.class),
LoadBalancingManager.getGson().toJson(fcsTakenWithTime,
new TypeToken<HashMap<ArrayList<Integer>, Long>>() {
}.getType()));
这是我检查是否是同一个对象后反序列化的方式:
Map<ArrayList<Integer>, Long> incerc = LoadBalancingManager.getGson().fromJson(
record.value(), new TypeToken<HashMap<ArrayList<Integer>, Long>>(){}.getType());
序列化有效。
我在同一线程中完成了其他反序列化并且它们有效,想不出哪里出了问题...
我正在使用记录器,我的堆栈跟踪没有显示任何错误,但我按照这些步骤操作,返回我的反序列化后它就出现了:FutureTask error
问题是 GSON 在尝试反序列化为一个 Long 对象时遇到问题,而它是一个 运行 线程,我所要做的就是通过添加字符串的一部分来手动反序列化我的字符串将 long 数字转换为另一个 String 对象,然后才将其转换为 Long 转换为我的 Long object.Hope 这将帮助其他人。