我的代码相当简单,并且被Eclipse外化。
public class BuchAnalysisPresenter extends
Presenter<BuchAnalysisPresenter.MyView, BuchAnalysisPresenter.MyProxy>
implements BuchAnalysisUiHandlers {
interface MyView extends View, HasUiHandlers<BuchAnalysisUiHandlers> {
SimplePanel getMain();
}
@ContentSlot
public static final Type<RevealContentHandler<?>> SLOT_BUCHNR = new Type<RevealContentHandler<?>>();
@NameToken(NameTokens.buchnummer)
@ProxyStandard
interface MyProxy extends ProxyPlace<BuchAnalysisPresenter> {
}
@Inject
VerlagServiceAsync verlagServiceAsync;
@Inject
BuchAnalysisPresenter(EventBus eventBus, MyView view, MyProxy proxy) {
super(eventBus, view, proxy, HomePagePresenter.SLOT_SetGraphContent);
getView().setUiHandlers(this);
}
}
但我收到编译错误说:
Unable to create or inherit binding: No @Inject or default constructor found for de.it2media.dps.statistics.client.application.buchnranalysis.BuchAnalysisPresenter$MyView
正如您在代码中看到的那样,实际上有一个构造函数BuchAnalysisPresenter
和@Inject
注释。
我对Spring
很新,并且不知道为什么会发生这种情况。
答案 0 :(得分:1)
我找到了解决方案。我只需要调用install()
的{{1}}方法,并像这样初始化我的模块GinBinder
。没有必要进行其他更改。
BuchAnalysisModule
答案 1 :(得分:0)
您是否在上下文中定义了MyView类型的bean?如果没有,Spring将尝试实例化一个,这将不适用于接口。
解决此问题的两种可能方法:
更改构造函数参数的类型:
BuchAnalysisPresenter(EventBus eventBus, MyViewImpl view, MyProxy proxy)
答案 2 :(得分:0)
在我的情况下,问题是我在我的View
类中使用了错误的HashMap实现,如下所示:
Map<String, String> map = new HashMap<String, String>();
问题在于导入的课程
我正在导入正确的Map接口但错误的HashMap类
进口就像:
import java.util.Map;
import com.google.gwt.dev.util.collect.HashMap;
我用以下内容替换了HashMap,它起作用了:)
import java.util.HashMap;