2010-03-04 94 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)自動處理第二個項目。