为什么java.io.Serializable在Java 5中没有被弃用?
在Java 5之前,没有注释。因此,您无法向类中添加元数据。
要将类标记为可序列化,您必须实现可序列化接口(它只是一个标记),并在需要时使用其他关键字将字段标记为不可序列化,如下所示:transient
public class MyClass implements Serializable {
...
private transient Bla field;
...
}
现在,理论上您可以使用注释(这对它们来说是一个完美的用法),并具有:
@Serializable
public class MyClass {
...
@Transient
private Bla field;
...
}
但是界面和关键字没有被弃用,并且在Java 5中没有添加注释来替换它们。
保留界面和关键字的此决定有哪些注意事项?
当然,存在与Java 5之前代码的兼容性问题,但在某些时候会结束(例如,与泛型的新功能相关,JLS指定Java编程语言的未来版本可能会禁止使用原始类型)。那么,为什么不也为序列化注释准备方法呢?
有什么想法吗?(尽管我更喜欢具体的参考资料:D我无法找到)