NetBeans平台教程问题

3
我正在阅读Netbeans平台快速入门教程(http://platform.netbeans.org/tutorials/nbm-quick-start.html),但我并不清楚在“使用Lookup的模块化应用程序”部分的第6部分中的提示是什么意思:

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

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

哪一个第六部分?该页面上有几个不同的指令集。 - Michael Myers
使用查找实现模块化应用程序 - joseph
哪个符号未定义?它在哪个模块中? - vkraemer
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();
    }

}

注意:如果您首先添加了模块依赖项,您可以从源菜单(CTRL-SHIFT-I/Clover-SHIFT-I)利用“修复导入”项自动处理第二个问题。

1

我明白了,我使用的是不支持该功能的旧版本netBeans。该功能自6.7版本以来就可用。


我从未想过那个。 - vkraemer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接