Использование нескольких @Assisted одного типаAndroid

Форум для тех, кто программирует под Android
Ответить
Гость
 Использование нескольких @Assisted одного типа

Сообщение Гость »


Я использую Dagger Assisted в своей ViewModel. Когда я создаю свою ViewModel с одним параметром @Assisted того же типа, она работает нормально. Однако проблемы возникают, когда имеется более одного параметра @Assisted одного типа.

Вот мой класс ViewModel:

конструктор класса SampleViewModel @AssistedInject( @Assisted val param1: Плавающее, @Assisted val param2: Плавающее, @Assisted val param3: Плавающее, ) : ViewModel() { @AssistedFactory интерфейс Фабрика { весело творить( параметр1: Плавающее, параметр2: Плавающее, параметр3: Плавающее число ): Сэмплевиевмодель } сопутствующий объект { весело обеспечитьфабрику( AssedFactory: Фабрика, параметр1: Плавающее, параметр2: Плавающее, параметр3: Плавающее число ): ViewModelProvider.Factory = объект: ViewModelProvider.Factory { @Suppress("UNCHECKED_CAST") переопределить fun create(modelClass: Class): T { вернуть AssistedFactory.create( параметр1, параметр2, параметр3 ) как Т } } } // ....... } Вот фрагмент:

@AndroidEntryPoint класс SampleFragment : Fragment() { @Инжект lateinit var viewModelAssistedFactory: SampleViewModel.Factory переопределить val viewModel: SampleViewModel by viewModels { SampleViewModel.provideFactory( ViewModelAssistedFactory, аргс.парам1, аргс.парам2, args.param3 ) } // ....... } Ошибка, возникающая для всех параметров:

ошибка: конструктор @AssistedInject имеет дублирующийся тип @Assisted: @Assisted float. Рассмотрите возможность установки идентификатора для параметра, используя @Assisted("identifier") как в фабрике, так и в конструкторе @AssistedInject. float param1, @dagger.assisted.Assisted ^ Как мне справиться с этой ошибкой?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»