3

我知道以上是规范规定的,但想了解为什么?如果允许类中的多个构造函数具有@Inject 注释,将会出现什么问题。我说的是 JSR 330。

PS:我知道 CDI 规范(即 JSR 299)利用了 JSR 330 的 @Inject。所以我也在问题中添加了那个标签。如果它不适用于 CDI,请随意删除。

4

1 回答 1

3

如果多个构造函数都用 注释@Inject,那么容器在决定使用哪个来实例化类型时会产生歧义。

你会选择哪个

@Inject
public Foo (Bar bar) {}

或者

@Inject 
public Foo (Zoom zoom) {}

Bar如果和之间绝对没有关系Zoom

于 2014-07-31T18:50:01.463 回答