2012-06-26 31 views
1

我想爲輕量級集合定義一個接口,但它無法成功編譯。這裏有什麼錯誤?爲什麼我無法爲覆蓋類型輕量級集合定義接口?

//...........................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) 
    { 
    ... 
    } 
} 

錯誤:

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)` 
+0

你可以添加compilator錯誤嗎? – Arcadien

+0

是的,補充說,沒有那麼多有用的消息 –

回答

0

這是因爲JsArray有一個受保護的構造。參見:Protected constructor and accessibility

你不能繼承它。你需要將代碼複製到你自己的類中。

+0

JsArray可以分類,我在我的代碼庫中,並且工作。 –

+0

不要以爲是這個規則就是使用「new Superclass()」而不是「super()」。 –

相關問題