CDI Dépendance ambiguë avec @Produces - pourquoi?

Je suis aide d'un code comme ci-dessous:

public Configuration {

    private boolean isBatmanCar = someMethod(...);

    @Produces
    public Car getCar(@New Car car) {
        if(isBatmanCar) {
            car.setName("BatmanCar");
        }
        return car;
    }
}

public Car {
    private String name = "NormalCar";

    public void setName(String name) {
        this.name = name;
    }
}

public Demo {
    @Inject
    Car car;

    //rest of code
}

Quand j'déployer une application de glassfish (Java EE 6 btw), j'ai

AmbiguousResolutionException: WELD-001318 Cannot resolve an ambiguous dependency between (...) Car with qualifiers [@Any @Default] (...) Producer Method [Car] with qualifiers [@Any @Default]

Je sais que quand j'ajoute @Alternative de classe car cela va fonctionner, mais je me demande si c'est la bonne façon de le faire, et pourquoi dois-je faire?

Pouvez-vous me dire quelle est la bonne utilisation de @Produit dans de tels cas?

Je suis à l'aide de Java EE 6, CDI 1.0, EJB 3.1, Glassfish 3.2

source d'informationauteur dmydlarz