for*_*ect 5 java lucene static protected
我正在尝试在 Lucene 信息检索 api 中使用受保护的静态方法。我对 static 的理解是,它们是从类定义中访问的,而我对 protected 关键字的理解是,它们只能从该类或子类的实例中访问。那么到底如何访问静态受保护方法呢?难道我的理解有误?我试图从导入的 jar 中的库调用受保护的静态方法。我该怎么做呢?
在本例中,我从StopwordAnalyzerBase调用 loadStopwordSet
为什么不能通过引用来调用此方法StopwordAnalyzerBase.loadStopwordSet(params)
?
考虑这个例子(它在我的机器上编译并运行):
package p1;
public class C1 {
protected void nonStatic() {}
protected static void isStatic() {}
}
----
package p2;
import p1.C1;
public class C2 extends C1 {
public void someMethod() {
super.nonStatic();
C1.isStatic(); // or even C2.isStatic()
}
}
Run Code Online (Sandbox Code Playgroud)
回到你原来的问题,我可以看到这个方法是从rabbitanalyzer:78(Lucene版本4.9.0,package org.apache.lucene.analysis.ar
)以及许多其他方法中调用的。