3

我正在阅读 Netbeans 平台快速入门教程(http://platform.netbeans.org/tutorials/nbm-quick-start.html),但我不清楚“使用查找的模块化应用程序”部分的第 6 部分, 小费:

在编译时,@ServiceProvider 注释将创建一个 META-INF/services 文件夹,其中包含一个文件,该文件注册您的 TextFilter 接口的实现,遵循 JDK 6 ServiceLoader 机制。您需要设置对 Utilities API 模块的依赖关系,该模块提供 ServiceProvider 注释。

有人知道我应该在哪个模块中设置对 Utilities API 模块的依赖关系吗?因为当我在 MyFilter 中设置依赖项时,编译器告诉我它“找不到符号”。

4

2 回答 2

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();
    }

}

注意:如果您首先添加模块依赖项,您可以利用 Source 菜单中的 Fix Imports 项 (CTRL-SHIFT-I/Clover-SHIFT-I) 自动处理第二个。

于 2010-03-05T00:49:14.813 回答
1

我明白了,我使用了不支持它的旧版本的 netBeans。这从 6.7 版本开始可用

于 2010-03-05T00:38:56.523 回答