Да, вам нужно быть явным.Добавьте следующее в свой модуль, если у вас уже есть Wallet<LeatherMaterial>
в вашем графике зависимостей где-то:
@Binds abstract Wallet<Material> provide(Wallet<LeatherMaterial> leatherWaller);
В противном случае используйте:
@Provides static Wallet<Material> provide() {
return new Wallet<LeatherMaterial>(){ /* ... */ };
}
Редактировать: Возвращаясь к этому ответу, потому что мне пришло в голову, что решения, которые я предоставил, не будут работать из-за того, как дженерики обрабатываются в Java.Вместо этого вам нужно будет использовать:
Wallet<? extends Material>
вместо Wallet<Material>
в моих вышеприведенных ответах и делать то же самое, где бы оно ни вводилось.