我尝试使用Google Guice在DropWizard中使用依赖注入,但我遇到了很多问题。所以我编写了一个简单的代码,如下所示,找出主要问题。错误在类Test,line:testservice.Result(10,10,10)中。 - 令牌上的语法错误“(”,{此标记后的预期 - 令牌上的语法错误,期望ConstructorHeaderName 代替 - 令牌“Result”上的语法错误,无效的AnnotationName
为什么我不能使用对象testservice?
感谢您的帮助。
#main-top-menu > li > a
}
package dropwizard.GoogleGuiiice;
import io.dropwizard.Application;
import io.dropwizard.setup.Bootstrap;
import io.dropwizard.setup.Environment;
public class GoogleGuiiiceApplication extends Application<GoogleGuiiiceConfiguration> {
public static void main(final String[] args) throws Exception {
new GoogleGuiiiceApplication().run(args);
}
@Override
public String getName() {
return "GoogleGuiiice";
}
@Override
public void initialize(final Bootstrap<GoogleGuiiiceConfiguration> bootstrap) {
// TODO: application initialization
}
@Override
public void run(final GoogleGuiiiceConfiguration configuration,
final Environment environment) {
// TODO: implement application
environment.jersey().register(new Test ());
}
}
import com.google.inject.Guice;
import com.google.inject.Injector;
public class Test {
Injector guice=Guice.createInjector(new OperationModule());
TestService testservice=guice.getInstance(TestService.class);
testservice.Result (10,10,10);
}
public interface Operation {
int getResult(int a, int b);
}
public class Somme implements Operation{
@Override
public int getResult(int a, int b){
return a+b;
}
}
public class OperationModule extends com.google.inject.AbstractModule{
@Override
protected void configure(){
bind(Operation.class).to(Somme.class);
}
}
答案 0 :(得分:0)
我不清楚你在这里尝试做什么,但是从纯粹的Java角度回答你的问题,语法错误只是因为你不允许在你的代码中执行任意语句。
如果你确实希望在那时执行该语句,那么你需要将它包装在花括号中,以便它在初始化程序块中,但这可能是没有意义的,因为实现结果被抛弃
{
testService.Result(10,10,10);
}
或者您需要将结果分配给字段
int useMe = testService.Result(10,10,10);
其他选项是您可以在Test类的构造函数或方法中执行该语句。
答案 1 :(得分:0)
我希望本教程可以提供帮助。 Dropwizard and Guice Integration