注释可以完全取代标记接口吗?

Nar*_*hai 7 java annotations marker-interfaces

由于标记接口主要用于标记类,因此可以通过注释实现相同的功能.例如,Cloneable界面可以@Cloneable.

那么仍然需要标记接口或者可以通过Annotations重新定位吗?使用其中任何一个有什么优点/缺点吗?我的意思是比其他人更喜欢?

JB *_*zet 7

当用于定义类型时,标记接口优于注释.例如,可以使用(并且应该使用)Serializable作为必须可序列化的参数的类型.注释不允许这样做:

public void writeToFile(Serializable object);
Run Code Online (Sandbox Code Playgroud)

如果标记接口没有定义类型,而只定义元数据,则注释更好.