gpt4 book ai didi

Java:带有新关键字的接口(interface)怎么可能?

转载 作者:IT老高 更新时间:2023-10-28 20:28:17 31 4
gpt4 key购买 nike

我正在从 Java 库中读取一些源代码,我在这里感到困惑;

这段代码来自jaxb库中的Document.java,ContentVisitor是一个接口(interface)在同一个包中,我们如何创建一个带有新关键字的接口(interface)实例?这不违法吗?

public final class Document {
.
.
private final ContentVisitor visitor = new ContentVisitor() {
public void onStartDocument() {

throw new IllegalStateException();
}

public void onEndDocument() {
out.endDocument();
}

public void onEndTag() {
out.endTag();
inscopeNamespace.popContext();
activeNamespaces = null;
}
}

最佳答案

在代码中,您没有创建接口(interface)的实例。相反,代码定义了一个实现接口(interface)的匿名类,并实例化该类。

代码大致相当于:

public final class Document {

private final class AnonymousContentVisitor implements ContentVisitor {

public void onStartDocument() {
throw new IllegalStateException();
}

public void onEndDocument() {
out.endDocument();
}

public void onEndTag() {
out.endTag();
inscopeNamespace.popContext();
activeNamespaces = null;
}
}

private final ContentVisitor visitor = new AnonymousContentVisitor();
}

关于Java:带有新关键字的接口(interface)怎么可能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9157784/

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