Почему Guice из доставки TestNG не распознает @ javax.inject.Inject, а Guice из пакета com.google.inject это делает? - PullRequest
2 голосов
/ 23 декабря 2010

Я пытаюсь Guice. Я сделал простой пример, который очень похож на пример в руководстве Guice Getting Started .

Но какое-то время он не работал и сказал:

Не удалось найти подходящий конструктор в mypack.ServiceUser. Классы должны есть один (и только один) конструктор с аннотацией @Inject или конструктор с нулевым аргументом, который не личное. в mypack.ServiceUser.class (ServiceUser.java:14) находя mypack.ServiceUser

Проблема была в импорте. Я подключил к проекту и Google Guice, и TestNG. И я импортировал классы из пакета org.testng.guice. Но аннотация Inject была импортирована из пакета javax.inject. После того, как я изменил этот импорт на org.testng.guice.Inject, моя программа начала работать.

Но после этого я немного поиграл с импортом. И я изменил весь org.testng импорт на com.google.inject. Программа все еще работала. После этого я вернулся к аннотации @Inject и изменил ее импорт на javax.inject.Inject (как это было в моей самой первой сломанной версии). И программа работала даже после этого.

Я снова проверил: Guice из пакетов TestNG не работает с javax.inject.Inject, в то время как Guice из пакетов Google (com.google.inject) работает с ним нормально.

Почему это так странно?

p.s. Я использую последние версии Guice и TestNG (guice-3.0-rc1 и testng-5.14.5).

1 Ответ

1 голос
/ 23 декабря 2010

Краткий ответ: @Guice все еще находится в стадии разработки и разрабатывается в списке рассылки, как мы говорим, поэтому он все еще экспериментален.

Кроме того, вы используете недокументированные пакеты, которые зарезервированы дляВнутреннее использование TestNG (org.testng.guice).

Я выпустил новую версию только сегодня, вы можете скачать ее по адресу http://testng.org/beta

Обратите внимание, что в этой новой версии больше нет org.testng.guice, поэтому убедитесь, что всякий раз, когда вам нужны символы Guice, вы импортируете их из com.google.inject.

Пожалуйста, оставляйте сообщения в списке рассылки testng-пользователей, если у вас есть какие-либо вопросы / проблемы.

Спасибо.

...