如果标记接口没有任何方法,它是如何工作的?

Kam*_*mal 17 java interface

我知道什么是标记接口以及何时需要使用它.我仍然不清楚一个问题.如果标记接口没有任何方法或主体,它在运行时如何工作?

Dan*_*yer 22

标记界面不会"起作用".顾名思义,它只是将一个类标记为特定类型.其他一些代码必须检查标记的存在并根据该信息执行某些操作.

这些天注释通常执行与标记接口之前相同的角色.


Mot*_*Mot 21

你可以做的唯一有用的事情是

if (instance instanceof MyMarkerInterface) {
   ...
}
Run Code Online (Sandbox Code Playgroud)


Pet*_*rey 7

标记接口可以在许多地方用注释替换,但仍然可以使用标记接口

您不能单独使用注释进行此编译时检查.

顺便说一句:你可以使用泛型有两个接口,但很少有很好的例子.

  • 支持依赖于接口来识别组件类型的框架.喜欢OSGi.

编辑:我用它作为Listener标记界面.侦听器具有标注注释的方法方法,但方法可以具有任何名称或类型.它将编译器时间检查添加到纯粹的运行时链接.

public Component implements Listener {

@ListenerCallback
public void onEventOne(EventOne... eventOneBatch) { }

@ListenerCallback
public void onEventTwo(EventTwo eventTwo) { }
}
Run Code Online (Sandbox Code Playgroud)

  • 你的`myMethod`或多或少没用,因为用*marker*接口可以做什么,它没有比'Object`更多的方法? (3认同)