定义和目地标识页面:
不包括方式申明。将类标记为具有特定特性。实例:serialized 表明一个类能够被实例化。标识插口的优势类型定义:
标识接口定义类案例 完成的种类。允许在编译时开展错误检验。实例:
publicclassmyclassimplementsserializable{
//implementação
}
编译时间查验:
应用标识插口可以在编译过程中检测出错误。可序列化的实例:
objectoutputstream.writeobject(myobject);//garantequemyobjectsejaserializable
打标精确度:
标识插口能够精准用于特定子类型。实例:
publicinterfacemymarkerinterfaceextendsmyspecificinterface{
//semmétodosadicionais
}
应用实例
可序列化:
表明一个类能够实例化。实例:
publicclasspersonimplementsserializable{
privatestringname;
privateintage;
//getters,setters,etc.
}
将插口设为限定标识:
只适用于collection的子类型,但不加上除collection界定以外的方式。细化了 add、equals 和 hashcode 等方式合同。与标识注解较为便签备注:
可以用在更多程序原素(类、插口、方式等)。实例:
@retention(retentionpolicy.runtime)
@target(elementtype.type)
public@interfacemymarkerannotation{
}
@mymarkerannotation
publicclassmyclass{
//implementação
}
何时应用标识插口与何时应用标识插口标识注解:
应用标识页面假如:标识务必界定种类。你可能需要撰写只接受含有该标记的对象的方法。在以下前提下应用标识注解:
该标识适用类或插口之外元素。这是广泛使用注解的框架的一部分。记号笔的优势
架构的一致性:推动根据注解的框架中间的一致性。实例:
@myframeworkannotation
publicclassmyclass{
//implementação
}
应用确定界定种类:
应用标识页面。标识不是类或接口原素:应用项目符号注解。根据注解的框架的一部分:应用项目符号注解。
最后实例
标识插口:
publicinterfacemytypemarker{
}
publicclassmyclassimplementsmytypemarker{
//implementação
}
publicvoidprocess(mytypemarkerobj){
//processaapenasobjetosmarcadoscommytypemarker
}
便签备注:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public@interfaceMyAnnotationMarker{
}
@MyAnnotationMarker
publicclassMyClass{
//Implementação
}
汇总
标识插口用以界定种类,无需额外方式。标识注解用以普遍标识程序原素。挑选在于标记的前后文和目的。以上就是Item 应用标识插口来定义种类的详细内容,大量请关注其他类似文章!