Проблема учебника по платформе NetBeans
Я читаю учебное пособие по быстрому запуску платформы Netbeans ( http://platform.netbeans.org/tutorials/nbm-quick-start.html) и не совсем ясно понимаю 6-ю часть в разделе "Модульное приложение с использованием поиска", наконечник:
Во время компиляции аннотация @ServiceProvider создаст папку META-INF/services с файлом, который регистрирует вашу реализацию интерфейса TextFilter, следуя механизму JDK 6 ServiceLoader. Вам необходимо установить зависимость от модуля API Utilities, который предоставляет аннотацию ServiceProvider.
Кто-нибудь знает, в каком модуле я должен установить зависимость от модуля Utilities API? Потому что, когда я устанавливаю зависимость в MyFilter, компилятор говорит мне, что он "не может найти символ".
2 ответа
Я понял, я использовал более старую версию NetBeans, которая не поддерживает это. Это доступно с версии 6.7
Вам нужно сделать проект 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), чтобы автоматически позаботиться о второй.