2010-03-04 95 views
3

我读了NetBeans平台快速入门教程(http://platform.netbeans.org/tutorials/nbm-quick-start.html),我不清楚地了解在部分第六部分“的模块化应用程序使用查找”,在TIP:NetBeans平台教程问题

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

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

+0

哪第6部分?该页面上有几组不同的说明。 – 2010-03-04 21:18:03

+0

使用查找的模块化应用程序 – joseph 2010-03-04 21:22:31

+0

哪些符号未定义?它在哪个模块中? – vkraemer 2010-03-05 00:27:27

回答

1

我明白了,我用旧版本的netBeans不支持这一点。这是可用的,因为6.7版本

+0

我永远不会想到这一点。 – vkraemer 2010-03-05 00:50:17

3

你需要让MyFilter项目相关的实用程序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)自动处理第二个项目。