我知道什么是标记接口以及何时需要使用它.我仍然不清楚一个问题.如果标记接口没有任何方法或主体,它在运行时如何工作?
Mot*_*Mot 21
你可以做的唯一有用的事情是
if (instance instanceof MyMarkerInterface) {
...
}
Run Code Online (Sandbox Code Playgroud)
标记接口可以在许多地方用注释替换,但仍然可以使用标记接口
编译时间检查.您可以拥有一个必须使用给定标记接口的类的对象的方法,例如
public void myMethod(MyMarkerInterface MMI);
Run Code Online (Sandbox Code Playgroud)您不能单独使用注释进行此编译时检查.
顺便说一句:你可以使用泛型有两个接口,但很少有很好的例子.
编辑:我用它作为Listener标记界面.侦听器具有标注注释的方法方法,但方法可以具有任何名称或类型.它将编译器时间检查添加到纯粹的运行时链接.
public Component implements Listener {
@ListenerCallback
public void onEventOne(EventOne... eventOneBatch) { }
@ListenerCallback
public void onEventTwo(EventTwo eventTwo) { }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5695 次 |
| 最近记录: |