2

我有一个使用 Gin/Guice 的 GWT 应用程序。

我的需要:在注入所有字段之后调用一个方法。

这是关于@Inject的Javadoc 摘录

Constructors are injected first, followed by fields, and then methods.

所以我的想法是只使用一种方法注释@Inject并将其用作注入后方法。这是我的代码的摘录:

//An injected attribute (a JSR 303 validator)
@Inject
private Validator validator;

//A constructor with some injectable args.
@Inject
public MyClass(...){
}

//And my post-injection method
@Inject
private void postInjection(){
  Log.warn("Validator null? "+(validator==null));
}

问题:日志显示true(=验证器为空,好像还没有注入)。稍后,验证器在单击按钮时被调用,并且显示为非空。我用其他可注射属性进行了测试,并且遇到了同样的问题。

1)使用 Gin 进行后注射方法是否有共同的模式?

2) GWT 中的注入顺序是否与 Gin 不同?这是一个错误吗?

4

1 回答 1

2

GIN 2.0 之前有一个错误,它已在 2.1 中修复。

https://code.google.com/p/google-gin/issues/detail?id=183

于 2013-09-05T13:42:13.157 回答