我正在阅读Netbeans平台快速入门教程(http://platform.netbeans.org/tutorials/nbm-quick-start.html),我并不清楚“使用查找的模块化应用程序”部分中的第6部分,提示:
在编译时,@ ServiceProvider注释将创建一个META-INF / services文件夹,其中包含一个文件,该文件按照JDK 6 ServiceLoader机制注册TextFilter接口的实现。您需要在Utilities API模块上设置依赖项,该模块提供ServiceProvider注释。
有谁知道我应该在哪个模块中设置与Utilities API模块的依赖关系? 因为当我在MyFilter中设置依赖项时,编译器告诉我它“找不到符号”。
答案 0 :(得分:3)
您需要使MyFilter项目依赖于Utilities API模块而您需要更改代码
package org.demo.myfilter;
import org.demo.textfilter.TextFilter;
@ServiceProvider(service=TextFilter.class)
public class UpperCaseFilter implements TextFilter {
public String process(String s) {
return s.toUpperCase();
}
}
进入
package org.demo.myfilter;
import org.demo.textfilter.TextFilter;
import org.openide.util.lookup.ServiceProvider;
@ServiceProvider(service=TextFilter.class)
public class UpperCaseFilter implements TextFilter {
public String process(String s) {
return s.toUpperCase();
}
}
注意:如果首先添加模块依赖项,则可以利用“源”菜单中的“修复导入”项(CTRL-SHIFT-I / Clover-SHIFT-I)自动处理第二个模块。
答案 1 :(得分:1)
我明白了,我使用了不支持它的旧版netBeans。从6.7版开始就可以使用