是否有可能使用比较器序列化TreeMap?Java序列化比较器
我测试过,它没有比较器的序列化树形图,当你添加比较器时,它会抛出一个异常。
如果我将比较器声明为transient,它仍然不起作用。它只有在我使每个树形图都是瞬态的时候才起作用,但在这种情况下它不会序列化树。
是否有可能使用比较器序列化TreeMap?Java序列化比较器
我测试过,它没有比较器的序列化树形图,当你添加比较器时,它会抛出一个异常。
如果我将比较器声明为transient,它仍然不起作用。它只有在我使每个树形图都是瞬态的时候才起作用,但在这种情况下它不会序列化树。
您可能会发现它与将比较器字段更改为静态而非实例成员一样简单:
public final static Comparator<String> ID_IGN_CASE_COMP
您需要确保所有其他字段都是可序列化的,但这应该是一个开始。
它不是'因为比较器是不可序列化的,但即使我声明它是暂时的,它仍然会因为使用比较器的TreeMap而抛出。 – d0pe
然后答案肯定是使比较器序列化。 –
TreeMap在这里没有做任何特别的事情。如果序列化的TreeMap和不是你的比较器的TreeMap唯一的区别...那么你的比较器是不可序列化的。
你是如何执行比较器的?对于没有临时引用的TreeMap类,您的临时声明是毫无意义的。
这个例外是什么意思?
你试图序列化哪个类的对象? –
程序中的所有类都在实现和导入序列化。 这是一个动物园课 – d0pe
请提供例外。这听起来像你的比较器不是可序列化的,但堆栈跟踪将显示哪个类失败。 – PSpeed