定义和目的标记界面:
不包含方法声明。
将类标记为具有特定属性。
示例:serialized 表示一个类可以被序列化。
标记接口的优点
类型定义:
标记接口定义类实例实现的类型。
允许在编译时进行错误检测。
示例:
public class myclass implements serializable {
// implementa??o
}
登录后复制
编译时间检查:
使用标记接口可以在编译过程中检测到错误。
可序列化的示例:
objectoutputstream.writeobject(myobject); // garante que myobject seja serializable
登录后复制
打标准确度:
标记接口可以精确应用于特定的子类型。
示例:
public interface mymarkerinterface extends myspecificinterface {
// sem métodos adicionais
}
登录后复制
使用示例
可序列化:
表示一个类可以序列化。
示例:
public class person implements serializable {
private string name;
private int age;
// getters, setters, etc.
}
登录后复制
将接口设置为限制标记:
仅适用于collection的子类型,但不添加除collection定义之外的方法。
细化了 add、equals 和 hashcode 等方法契约。
与标记注释比较
书签备注:
可以应用于更多的程序元素(类、接口、方法等)。
示例:
@retention(retentionpolicy.runtime)
@target(elementtype.type)
public @interface mymarkerannotation {
}
@mymarkerannotation
public class myclass {
// implementa??o
}
登录后复制
何时使用标记接口与何时使用标记接口标记注释:
使用标记界面如果:
标记必须定义类型。
您可能想要编写只接受带有该标记的对象的方法。
在以下情况下使用标记注释:
该标签适用于类或接口以外的元素。
它是大量使用注释的框架的一部分。
记号笔的优点
框架的一致性:
促进基于注释的框架之间的一致性。
示例:
@myframeworkannotation
public class myclass {
// implementa??o
}
登录后复制
使用决定定义类型:
使用标记界面。
标记不是类或接口的元素:
使用项目符号注释。
基于注释的框架的一部分:使用项目符号注释。
最终示例
标记接口:
public interface mytypemarker {
}
public class myclass implements mytypemarker {
// implementa??o
}
public void process(mytypemarker obj) {
// processa apenas objetos marcados com mytypemarker
}
登录后复制
书签备注:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface MyAnnotationMarker {
}
@MyAnnotationMarker
public class MyClass {
// Implementa??o
}
登录后复制
总结
标记接口用于定义类型,无需额外方法。
标记注释用于广泛标记程序元素。
选择取决于标记的上下文和目的。
以上就是Item 使用标记接口来定义类型的详细内容,更多请关注php中文网其它相关文章!
91资源网站长-冰晨2024-08-27 17:15
发表在:【账号直充】爱奇艺黄金VIP会员『1个月』官方直充丨立即到账丨24小时全天秒单!不错不错,价格比官方便宜
91资源网站长-冰晨2024-08-27 16:15
发表在:2022零基础Java入门视频课程不错,学习一下