¿Por qué es imposible inyectar clases genéricas? [cerrado]

Tengo una clase de plantilla abstracta genérica. Pensé que si creaba productores de tipo específico, podría inyectar algún servicio DAO directamente en la clase genérica. Pero no puedo.

¿Por qué? ¿Y cómo podría evitar esto?

abstract class MyView<T> {
    @Inject
    MyDao<T> dao;

    //some more template methods that make use of the dao
    void someMethod() {
        dao.use();
    }
}

class CustomerView extends MyView<Customer> {
    //javax.enterprise.inject.AmbiguousResolutionException: Ambigious resolution
}


class DaoManager {
    @Produces
    MyDao<Customer> getDaoCustomer() {
        return DaoFactory.make(Customer.class);
    }

    @Produces
    MyDao<Product> getDaoProduct() {
        return DaoFactory.make(Product.class);
    }
}

Cuando me inyecto, por ejemplo, un@Inject MyDao<Customer> dao; funciona perfectamente Pero no con los genéricos ...

Respuestas a la pregunta(1)

Su respuesta a la pregunta