报告 SerializableExternalizable 类中不适合使用 java.io.Serial 注解进行注解的方法和字段。

示例:


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 的文档。

仅当项目或模块的语言级别为 14 或更高时,此检查才会报告。

2020.3 最新变化