Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我知道以上是规范规定的,但想了解为什么?如果允许类中的多个构造函数具有@Inject 注释,将会出现什么问题。我说的是 JSR 330。
PS:我知道 CDI 规范(即 JSR 299)利用了 JSR 330 的 @Inject。所以我也在问题中添加了那个标签。如果它不适用于 CDI,请随意删除。
如果多个构造函数都用 注释@Inject,那么容器在决定使用哪个来实例化类型时会产生歧义。
@Inject
你会选择哪个
@Inject public Foo (Bar bar) {}
或者
@Inject public Foo (Zoom zoom) {}
Bar如果和之间绝对没有关系Zoom。
Bar
Zoom