В версиях до Java 5 не было аннотаций. В результате вы не могли добавлять метаданные в класс.
1228] Чтобы пометить класс как сериализуемый, вам нужно было реализовать интерфейс Serializable (это просто маркер) и использовать дополнительные ключевые слова transient
, чтобы пометить поле как несериализуемое, если необходимо, что-то вроде:
public class MyClass implements Serializable {
...
private transient Bla field;
...
}
Теперь вы теоретически можете использовать аннотации (это идеальное применение для них) и иметь:
@Serializable
public class MyClass {
...
@Transient
private Bla field;
...
}
Но интерфейс и ключевое слово не были устаревшими, и в Java 5 не было добавлено никаких аннотаций для замены их.
Каковы соображения для этого решения сохранить интерфейс и ключевое слово?
Конечно, существует проблема совместимости с кодом до Java 5, но в какой-то момент это закончится (например, в связи с новым функции дженериков, JLS указывает, что Возможно, что будущие версии Java p язык программирования запрещает использование необработанных типов ). Так почему бы не подготовить почву для сериализованных аннотаций?
Есть мысли? (хотя я бы предпочел конкретные ссылки: D, который я не смог найти)