#java
#java
Вопрос:
При использовании ServiceLoader.load(X.class ) и есть 2 файла jar, которые содержат определения для X.class какой из них будет развернут?
Проблема, которую я вижу, заключается в том, что это кажется прерывистым с точки зрения порядка загрузки класса.
Это проблема, поскольку определения немного отличаются.
В идеале это должно появляться только один раз в пути к классу и избегать всех проблем, но в промежуточное время я пытаюсь понять, что загружается первым.
Комментарии:
1. Насколько я понимаю, все найденные классы загружаются в том порядке, в котором они отображаются в classpath. Но поскольку API не указывает это, это неопределенно. и даже если это правда, это может измениться с более поздними версиями Java.
2. Это зависит от порядка, в котором файлы определения service loader для интерфейса отображаются в CLASSPATH.
Ответ №1:
Это зависит от версии Java, типа и версии сервера приложений, возможно, даже настроек файловой системы и, кто знает, чего еще. Я думаю, достаточно сказать, что нет никакой гарантии в отношении порядка, и это то, на что вы никогда не должны полагаться.