Почему нельзя вводить общие классы? [закрыто]

У меня есть общий абстрактный шаблон класса. Я подумал, что если я создам специфичные для типа 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; это работает отлично. Но не с дженериками ...

Ответы на вопрос(1)

Ваш ответ на вопрос