Проблема учебника по платформе NetBeans - PullRequest
3 голосов
/ 05 марта 2010

Я читаю учебное пособие по быстрому запуску платформы Netbeans (http://platform.netbeans.org/tutorials/nbm-quick-start.html),) и не совсем понимаю 6-ю часть в разделе «Модульное приложение с использованием поиска», СОВЕТ:

Во время компиляции аннотация @ServiceProvider создаст папку META-INF / services с файлом, который регистрирует вашу реализацию интерфейса TextFilter, следуя механизму JDK 6 ServiceLoader. Вам необходимо установить зависимость от модуля API утилит, который предоставляет аннотацию ServiceProvider.

Кто-нибудь знает, в каком модуле я должен установить зависимость от модуля Utilities API? Потому что, когда я устанавливаю зависимость в MyFilter, компилятор говорит мне, что он «не может найти символ».

Ответы [ 2 ]

3 голосов
/ 05 марта 2010

Вам необходимо сделать проект 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 голос
/ 05 марта 2010

Я понял, я использовал более старую версию netBeans, которая не поддерживает это. Это доступно с версии 6.7

...