Почему нельзя вводить общие классы? [закрыто]
У меня есть общий абстрактный шаблон класса. Я подумал, что если я создам специфичные для типа Producers, я мог бы внедрить некоторые службы DAO непосредственно в общий класс. Но я могу'т.
Зачем? И как я мог обойти это?
abstract class MyView {
@Inject
MyDao dao;
//some more template methods that make use of the dao
void someMethod() {
dao.use();
}
}
class CustomerView extends MyView {
//javax.enterprise.inject.AmbiguousResolutionException: Ambigious resolution
}
class DaoManager {
@Produces
MyDao getDaoCustomer() {
return DaoFactory.make(Customer.class);
}
@Produces
MyDao getDaoProduct() {
return DaoFactory.make(Product.class);
}
}
Например, когда я делаю инъекцию@Inject MyDao dao;
это работает отлично. Но не с дженериками ...