所谓标记接口,就是指一个接口里面什么都没有,只是标记实现类具有某种属性。例如serilizeable就是这样一个接口,他只是告诉jvm,继承于这个接口的CLASS需要序列化处理,而我们根本不用实现这个接口的方法。
优点:
1.标记接口定义的类型是由被标记类的实例实现的;标记注解则没有定义这样的类型。
2.可以被更精确地进行锁定。如果注解类型利用@Target(ElementType.TYPE)声明,它就可以被应用到任何类或者接口,假设有一个标记只是适用于特殊的接口实现,但它却可以被应用到类,如果定义成一个标记接口,就可以用它将唯一的接口扩展成适用的接口。
总之 , 标记接口和标记注解各有用处 . 如果想要定义一个任何新方法都不会与之关联的类型 , 标记接口就是最好的选择 . 如果想要标记程序元素而非类和接口 , 考虑到未来可能要给标记添加更多地信息 , 或者标记要适合于已经广泛使用了注解类型的框架 , 那么标记注解是正确的选择 .