Лучшая технология для добавления плагина поддерживает к приложению J2SE? [закрытый]

Другое событие NullPointerException возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.

String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals для гарантированного непустого объекта.

Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null.

Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.

String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

5
задан Marcus Leon 23 October 2009 в 14:00
поделиться

5 ответов

После многих попыток основанной на плагине архитектуры Java (что точно, что Вы, кажется, ищете), я наконец нашел, что JSPF был лучшим решением для кода Java5. это не имеет огромных потребностей OSGI как решения, но вместо этого довольно просто в использовании.

5
ответ дан 14 December 2019 в 04:51
поделиться

OSGI является, конечно, допустимым способом пойти. Но, принятие Вас не должно разгружаться для перезагрузки плагина, оно могло бы использовать молоток для взламывания гайки.

Вы могли использовать классы в 'java.util.jar', чтобы просканировать каждый файл JAR в Вашей папке плагинов и затем использовать 'java.net. URLClassLoader' для загрузки в корректном.

2
ответ дан 14 December 2019 в 04:51
поделиться

Если Вам "просто" нужен один компонент, чтобы быть сменными, достаточно просто инстанцировать классов на основе метаинформации, например, считать через classloaders META-INF/информацию от различных банок, которые находятся на Вашем пути к классу или в определенном сменном каталоге.

OSGi, с другой стороны, обеспечивает средства структурировать Ваше целое приложение. Если у Вас уже есть большое Настольное приложение, которому нужна одна сменная часть, это было бы крутой кривой обучения. При запуске пробела с того, что будет Настольным приложением, OSGi обеспечивает средства для модульного исполнения целого приложения. Это об "изоляции компонентов" и независимости модулей.

Felix Apache обеспечивает хороший запуск, если Вы хотите спуститься по маршруту OSGi. Это могло бы выглядеть сложным и тяжелым, но это - то, только потому, что каждый не привык к тому уровню изоляции между модулями. Это раньше было так легко просто назвать любой открытый метод...

1
ответ дан 14 December 2019 в 04:51
поделиться

Вы думали об использовании OSGi как сменная платформа? С OSGi Вы можете обновить/заменить, загрузить или разгрузить Ваши модули по требованию.

0
ответ дан 14 December 2019 в 04:51
поделиться

Один подход, который я рассматриваю, имеет мой запуск приложения легкий контейнер OSGi, который, если я понимаю правильно, смог бы обнаружить, какие сменные файлы JAR существуют в обозначенной папке, которая в свою очередь позволила бы мне перечислить их, чтобы пользователь выбрал из. Действительно ли это выполнимо?

Я также нашел эту статью Richard Deadman, но это выглядит немного датированным (2006?) и упоминания ни один OSGi (по крайней мере, не по имени), ни java.util.jar пакет

0
ответ дан 14 December 2019 в 04:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: