有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (1) 个答案

  1. # 1 楼答案

    你链接到的页面上写的是

    A program may produce unpredictable results if it attempts to distinguish two references to equal values of a value-based class…

    所以一般来说,序列化和反序列化这些类的对象没有问题。如果你序列化,比如说,一个LocalDateTime并再次反序列化,你会得到一个与第一个相等的对象。这通常就是你所需要的

    如果序列化了两个引用相同的对象,则可能会得到两个引用相同但不同的对象。或者反过来说,如果序列化两个对象时引用了两个不同但相等的LocalDateTime,理论上它们可能会返回对同一个对象的引用

    这意味着,在反序列化之后,可能会出现意想不到的结果

    if (myLocalDateTime == myOtherLocalDateTime)
    

    你问

    what could be the alternative in this case?

    另一种方法是:始终将此类对象与.equals进行比较:

    if (myLocalDateTime.equals(myOtherLocalDateTime))
    

    那你就安全了