java.io.Serial アノテーションを付けるのに適していない Serializable および Externalizable クラスのメソッドとフィールドを報告します。

例:


class Test implements Serializable {
  @Serial // アノテーションが付いたフィールドは final ではないためシリアル化機構に組み込まれていません
  private static long serialVersionUID = 7874493593505141603L;

  @Serial // アノテーションが付いたメソッドは private ではないためシリアル化機構に組み込まれていません
  void writeObject(ObjectOutputStream out) throws IOException {
  }
}

class Test implements Externalizable {
  @Serial // アノテーションが付いたメソッドは Externalizable クラス内にあるため、シリアライズ機構に組み込まれていません
  private void writeObject(ObjectOutputStream out) throws IOException {
  }
}

すべての有効なケースに関する詳細は、java.io.Serial クラスの Javadoc を参照してください。

2020.3 の新機能です