XStream:序列化的java.sql.Time的反序列化会导致错误

XStream:序列化的java.sql.Time的反序列化会导致错误,java,serialization,xml-serialization,xstream,Java,Serialization,Xml Serialization,Xstream,下面的代码抛出了一个异常,这是我完全没有预料到的 long now = System.currentTimeMillis(); java.sql.Time t1 = new java.sql.Time(now); String s1 = new XStream().toXML(t1); java.sql.Time t2 = (java.sql.Time) new XStream().fromXML(s1); if(!

下面的代码抛出了一个异常,这是我完全没有预料到的

        long now = System.currentTimeMillis();
        java.sql.Time t1 = new java.sql.Time(now);
        String s1 = new XStream().toXML(t1);
        java.sql.Time t2 = (java.sql.Time) new XStream().fromXML(s1);
        if(!t1.equals(t2)) throw new IllegalArgumentException();


问题是,为什么,它是XStream中的一个bug吗?

快速的谷歌搜索给出XStream使用这个类来序列化java.sql.Time:

请注意警告:

将java.sql.Time转换为文本。 警告:任何小于秒的粒度都将丢失


因此它被截断为偶数秒,因此与原始(毫秒)的比较失败。

您的意思是最后几行抛出了IllegalArgumentException,还是在某个地方抛出了一些完全不同的异常,如果您能告诉我们
s1
中的字符串是什么样子的,那会很有帮助。非常感谢,很抱歉我没有把问题说得更清楚。