gpt4 book ai didi

java - JVM 如何处理标记接口(interface)

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:41:07 24 4
gpt4 key购买 nike

标记界面没有任何东西。它仅包含接口(interface)声明,那么 JVM 如何处理实现此标记接口(interface)的类?

我们可以创建任何新的标记界面吗?

最佳答案

您的问题实际上应该是编译器 如何处理标记接口(interface),答案是:与任何其他接口(interface)没有区别。例如,假设我声明了一个新的标记接口(interface) Foo:

public interface Foo {
}

...然后声明一个实现Foo的类Bar:

public class Bar implements Foo {
private final int i;

public Bar(int i) { this.i = i; }
}

我现在可以通过 Foo 类型的引用来引用 Bar 的实例:

Foo foo = new Bar(5);

... 并检查(在运行时)对象是否实现了 Foo:

if (o instanceof Foo) {
System.err.println("It's a Foo!");
}

后一种情况通常是使用标记接口(interface)的驱动因素;前一种情况几乎没有什么好处,因为没有可以在 Foo 上调用的方法(无需首先尝试向下转型)。

关于java - JVM 如何处理标记接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7791802/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com