报告在 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 最新变化