У меня есть метод который может вернуть 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.
Комментариев нет:
Отправить комментарий