为什么';TestNG delivery的Guice可以识别@javax.inject.inject,而com.google.inject包的Guice可以识别吗?
我在找Guice。我做了一个简单的例子,与手册中的例子非常相似 但它有一段时间不起作用,说: 找不到合适的构造函数 在mypack.ServiceUser中。课程必须 有一个(并且只有一个) 用@Inject或 一个零参数构造函数,它是 不是私人的。在 mypack.ServiceUser.class(ServiceUser.java:14) 查找mypack.ServiceUser时 问题在于进口。我将GoogleGuice和TestNG都附加到该项目中。我从为什么';TestNG delivery的Guice可以识别@javax.inject.inject,而com.google.inject包的Guice可以识别吗?,java,dependency-injection,annotations,guice,testng,Java,Dependency Injection,Annotations,Guice,Testng,我在找Guice。我做了一个简单的例子,与手册中的例子非常相似 但它有一段时间不起作用,说: 找不到合适的构造函数 在mypack.ServiceUser中。课程必须 有一个(并且只有一个) 用@Inject或 一个零参数构造函数,它是 不是私人的。在 mypack.ServiceUser.class(ServiceUser.java:14) 查找mypack.ServiceUser时 问题在于进口。我将GoogleGuice和TestNG都附加到该项目中。我从org.testng.guicep
org.testng.guice
package导入了类。但是注释Inject
是从javax.Inject
包导入的。在我将导入更改为org.testng.guice.Inject
之后,我的程序开始工作
但在那之后,我又玩了一点。我将所有的org.testng
导入更改为com.google.inject
。这个计划仍然有效。在那之后,我返回到@Inject
注释,并将其导入更改为javax.Inject.Inject
(就像我第一个被破坏的版本一样)。即使在那之后,这个项目仍然有效
我又检查了一次:TestNG包中的Guice不能与javax.inject.inject
一起工作,而google包中的Guice(com.google.inject
)可以正常工作
为什么这么奇怪
p、 我使用的是Guice和TestNG的最新版本(Guice-3.0-rc1和TestNG-5.14.5)。简短的回答是:@Guice仍然是一项正在进行中的工作,正如我们所说的,正在邮件列表中设计,所以它仍然是实验性的 此外,您使用的是保留给TestNG内部使用的未记录的包(org.TestNG.guice) 我今天刚推出了一个新版本,你可以在 请注意,这个新版本不再具有org.testng.guice,因此请确保无论何时需要guice符号,都可以从com.google.inject导入它们 如果您还有任何问题/顾虑,请在testng用户邮件列表上发布
谢谢。谢谢您的解释和新版本。当我只使用com.google.inject和java.inject.inject时,会出现相同的错误。