我可以回答您的部分问题 - java 中标记接口的意义是什么?
通过引入注解,Java 为我们提供了一种替代方法来实现与标记接口相同的结果。此外,像标记接口一样,我们可以将注释应用于任何类,我们可以将它们用作指示符来执行某些操作。
那么关键的区别是什么?
与注解不同,接口允许我们利用多态性。因此,我们可以为标记界面添加额外的限制。
例如,让我们添加一个限制,即只能从数据库中删除 Shape 类型:
public interface Shape {
double getArea();
double getCircumference();
}
在这种情况下,我们的标记接口,我们称之为 DeletableShape,将如下所示:
public interface DeletableShape extends Shape {
}
然后我们的类将实现标记接口:
public class Rectangle implements DeletableShape {
// implementation details
}
因此,所有的 DeletableShape 实现也是 Shape 实现。显然,我们不能使用 annotations 来做到这一点。
然而,每个设计决策都有权衡,多态性可以用作反对标记接口的反驳。在我们的示例中,每个扩展 Rectangle 的类都会自动实现 DeletableShape。
这可能无法提供您想要的确切答案。但可以部分帮助你。
资料来源:baeldung.com