报告 record 类中定义的方法 writeObject()readObject()readObjectNoData()writeExternal()readExternal() 或字段 serialPersistentFields。 这些成员不用于记录的序列化或反序列化。

示例:


  record R1() implements Serializable {
    // 该字段在记录序列化期间被忽略
    @Serial
    private static final ObjectStreamField[] serialPersistentFields = new ObjectStreamField[0];

    // 该方法在记录序列化期间被忽略
    @Serial
    private void writeObject(ObjectOutputStream out) throws IOException {
    }
  }

  record R2() implements Externalizable {
    // 该方法在记录序列化期间被忽略
    @Override
    public void writeExternal(ObjectOutput out) throws IOException {
    }

    // 该方法在记录序列化期间被忽略
    @Override
    public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
    }
  }

该检查仅适用于 14 级或更高的语言级别。

2020.3 的新功能