Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 番石榴的hashbimap可序列化吗?_Java_Serialization_Guava - Fatal编程技术网

Java 番石榴的hashbimap可序列化吗?

Java 番石榴的hashbimap可序列化吗?,java,serialization,guava,Java,Serialization,Guava,我运行的是guava-14.0.1,代码如下: public class LinearClsMalletAdaptor extends Classifier implements Serializable{ private BiMap<Double, String> indexToLabel; ......... classifier = new LinearClsMalletAdaptor(sp, model, hashBiMap.inverse()); 如果他在自己的

我运行的是guava-14.0.1,代码如下:

public class LinearClsMalletAdaptor extends Classifier implements Serializable{
    private BiMap<Double, String> indexToLabel;
.........

classifier = new LinearClsMalletAdaptor(sp, model, hashBiMap.inverse());
如果他在自己的机器上执行序列化,则不会发生此问题。我有点困惑,HashBiMap类是可序列化的吗?api文档说

HashBiMap及其逆函数都是可序列化的


但是这里的这个似乎有点混淆了?

HashBiMap是可序列化的

public final class HashBiMap<K, V> extends AbstractMap<K, V> implements BiMap<K, V>, Serializable
公共最终类HashBiMap扩展了AbstractMap实现了BiMap,可序列化
还有另一个问题,看看堆栈。您正在尝试反序列化不同的对象

我的意思是这个文件包含另一个类AbstractBiMap,您需要BiMap

BiMap与AbstractBiMap没有任何共同之处

只有EnumBiMap EnumHashBiMap和Reverse扩展了AbstractBiMap


当然,我说的是guava 14.0.1,所以请确保在这两种情况下使用的是相同的guava版本。

HashBiMap是可序列化的

public final class HashBiMap<K, V> extends AbstractMap<K, V> implements BiMap<K, V>, Serializable
公共最终类HashBiMap扩展了AbstractMap实现了BiMap,可序列化
还有另一个问题,看看堆栈。您正在尝试反序列化不同的对象

我的意思是这个文件包含另一个类AbstractBiMap,您需要BiMap

BiMap与AbstractBiMap没有任何共同之处

只有EnumBiMap EnumHashBiMap和Reverse扩展了AbstractBiMap


当然,我说的是guava 14.0.1,所以请确保在这两种情况下都使用相同的guava版本。

正如chrylis和Tasm所建议的,问题是guava版本之间不匹配。Guava的一个版本不一定能读取另一个版本序列化的对象。(来源:番石榴主页,上面写着:)

您可以推断版本不同,因为
HashBiMap
extend
AbstractBiMap
,但确实如此


(顺便说一句,您到的链接令人困惑,因为它是关于GWT序列化的,它与普通Java序列化是分开的。这里不涉及它。这个讨论应该比现在更清楚。)

正如chrylis和Tasm所指出的,问题是Guava版本之间的不匹配。Guava的一个版本不一定能读取另一个版本序列化的对象。(来源:番石榴主页,上面写着:)

您可以推断版本不同,因为
HashBiMap
extend
AbstractBiMap
,但确实如此


(顺便说一句,您的链接令人困惑,因为它是关于GWT序列化的,而GWT序列化与普通Java序列化是分开的。这里不涉及它。关于这一点的讨论应该比现在更清楚。)

你们都运行相同版本的Guava?Chrylis,是的,我在两台机器上都运行了14.0.1。你们都在运行相同版本的番石榴吗?Chrylis,是的,我在两台机器上都运行了14.0.1。chris,我不知道,至少maven报告说我在两台机器上都使用了14.0.1。嗯,那么我想知道其中一台机器上是否有多个番石榴版本。让我们通过计算每台机器上的两个表达式来了解关于
HashBiMap
的内容:(1)
HashBiMap.class.getProtectionDomain().getCodeSource().getLocation()
。这应该指向类所在的jar。(2)
HashBiMap.class.getSuperclass()
。这应该表明类是否在每种情况下都扩展了
AbstractBiMap
。Chris,我不知道,至少maven报告说我在两台机器上都使用了14.0.1 mm,那么我想知道其中一台机器上是否有多个版本的Guava。让我们通过计算每台机器上的两个表达式来了解关于
HashBiMap
的内容:(1)
HashBiMap.class.getProtectionDomain().getCodeSource().getLocation()
。这应该指向类所在的jar。(2)
HashBiMap.class.getSuperclass()
。这应该显示类在每种情况下是否扩展了
AbstractBiMap