CDI模糊解决方案异常

Ven*_*enu 2 java-ee cdi

我有三个类定义如下.

class A {
}

class B extends A{
}

class C extends A{
}

class D{
//Inject class A
}
Run Code Online (Sandbox Code Playgroud)

我正在D类中注入A类.CDI正在抛出不明确的解决方案异常.解决这个问题的正确方法是什么?感谢您的帮助.

小智 6

@Typed标注能够限制bean类型,这样你可以这样写:

class A {
}

@Typed(B.class)
class B extends A {
}

@Typed(C.class)
class C extends A {
}

class D {
//Inject class A
}
Run Code Online (Sandbox Code Playgroud)

在您的部署中,bean类(resp.)的bean 类型将被限制为和(resp.和),因此只有一个bean的bean类型包含类型,并且将解析模糊解析.BCBObjectCObjectA

请注意,@Typed自CDI 1.0以来,注释可用.