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 {
    }
  }

2020.3 の新機能です