Страницы

Поиск по вопросам

воскресенье, 7 июля 2019 г.

Nulable аннотация показывает ошибку в Dagger2

У меня есть метод который может вернуть nullable обьект , я добавляю соответствующую аннотацию в метод и во все остальные методы которые используют этот обьект, но все равно получаю ошибку
Error:(17, 7) error: services.objects.response.CallServicePart is not nullable, but is being provided by @ui.dagger.dynamicFormComponent.PerDynamicForm @Provides @android.support.annotation.Nullable services.objects.response.CallServicePart ui.dagger.dynamicFormComponent.DynamicModule .getCallServicePart(models.AppModel) at: services.objects.response.CallServicePart is injected at ui.fragments.DynamicFormFragment.mServicePart ui.fragments.DynamicFormFragment is injected at ui.dagger.dynamicFormComponent.DynamicFormComponent.inject(iFragment)
Вот мой модуль
@Module public class DynamicModule {
...///
@PerDynamicForm @Provides @Nullable CallServicePart getCallServicePart(AppModel iAppModel) { return iAppModel.getServicePart(); }
@PerDynamicForm @Provides @Nullable ServicePartFormQuestionsManager getServicePartFormQuestionsManager(@CallNumber long iCallNumber, @Nullable CallServicePart iServicePart) { ServicePartFormQuestionsManager manager = null;
if (iServicePart != null) { manager = CallsManager.getInstance().getOpenCallData(iCallNumber).getServicePartFormQuestionManagerForPartCode(iServicePart.getPartCode()); }
return manager; }
.../// }
Что делаю не так?


Ответ

Аннотация @Nullable говорит о том, что возвращаемое значение параметра, поля или метода может быть .
If a {@code @Provides} method is marked {@code @Nullable}, Dagger will only allow injection into sites that are marked {@code @Nullable} as well. A component that attempts to pair a {@code @Nullable} provision with a non-{@code @Nullable} injection site will fail to compile.
Если метод отмечен как @Nullable, Dagger допускает инъекцию только на ссылки с отметкой @Nullable. Компонент, который пытается скомпилировать условие @Nullable с помощью команды non@Nullable, зафейлится.
Error:(17, 7) error: services.objects.response.CallServicePart is not nullable
Вот он и ругается, проверьте что класс имеет аннотации, на всякий случай сделайте clean project и rebuild.

Комментариев нет:

Отправить комментарий