由于个人对原文该篇部分内容不太满意,所以结合原文写了自己的见解。
标记接口是没有包含方法声明的接口,而只是指明一个类具有某种属性的接口。例如
public interface Serializable {
}
标记注解与标记接口非常相似,而且在SpringBoot中无处不在,以至于有“标记接口已过时,标记注解已经取而代之的论调”。这种断言是不正确的。
标记接口的一个优势:标记接口定义的类型是由被标记的实例实现的;标记注解则没有定义这样的类型。这个类型允许你在编译的时候捕捉到某些错误,而这些错误在使用标记注解的情况下只能在运行时被捕捉。
private void writeObject(Serializable out)
throws IOException
writeObject方法要求传入一个实现了Serializable接口的实例,如果传入的对象没有实现该接口自然编译失败,当然IDE会提前提醒我们这一点,但是如果使用注解,那就需要一个解析注解的过程麻烦,而且只能在运行时才能报错。这种情况下,标记接口是更好的选择。