为什么 Java 没有用 @Serializable 注解替换 Serializable 接口?

7

在注解引入后,为什么Java没有用@Serializable注解替代Serializable呢?


3
首先,由于向后兼容性。 - Alex Salauyou
2个回答

7

注解不会被继承,但Serializable接口会被继承。这意味着,删除Serializable接口可能会破坏兼容性,并且可能无法使用注解替换它,因为它们的行为不同。

另一个区别是您可以编写:

void method(Serializable s)

但是您不能对注释执行相同的操作,尽管ObjectOutputStream.writeObject在任何情况下都需要一个对象


1
我认为主要是因为这意味着很多旧代码都没有使用注解,将会在所有地方产生编译器警告。

Serializable不是唯一一个可能被弃用的东西,但是为了向后兼容而没有被弃用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接