Gwt 为什么可以';我是否定义覆盖类型轻型集合的接口?
我想将轻量级集合的接口定义为blow,但无法成功编译。这里有错吗Gwt 为什么可以';我是否定义覆盖类型轻型集合的接口?,gwt,interface,overlay,Gwt,Interface,Overlay,我想将轻量级集合的接口定义为blow,但无法成功编译。这里有错吗 //...........................Interface........................................... @SingleJsoImpl(JsArrayExtImpl.class) public interface JsArrayExt<M>{ public void add(int addBefore, M model) ;
//...........................Interface...........................................
@SingleJsoImpl(JsArrayExtImpl.class)
public interface JsArrayExt<M>{
public void add(int addBefore, M model) ;
public void add(M model) ;
public void addAll(JsArrayExt<M> models);
}
//................................Implementation
public class JsArrayExtImpl<M extends JavaScriptObject> extends JsArray<M> implements JsArrayExt<M>
{
protected JsArrayExtImpl()
{
}
@Override
public final native void add(int addBefore, M model) /*-{
this.splice(addBefore, 0, model);
}-*/;
@Override
public final void add(M model)
{
...
}
}
这是因为JsArray有一个受保护的构造函数。见:
您不能将其子类化。你需要将代码复制到你自己的类中。你能添加编译器错误吗?是的,添加了,没有那么多有用的消息JSArray可以被子类化,我在我的代码库中完成了,并且可以工作。不要认为是这样,这条规则是用于“新超类()”而不是“超级()。
Exception in thread "Code server for gwttest from Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:13.0) Gecko/20100101 Firefox/13.0.1 on ...GWTTest.html?gwt.codesvr=127.0.0.1:9997 @ SR;E74|oFVbz;?F%" java.lang.NullPointerException
at com.google.gwt.dev.shell.ModuleSpace.dispose(ModuleSpace.java:146)
at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:215)
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:525)
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:363)
at java.lang.Thread.run(Thread.java:722)`