Java JsInterop-获取数组中的值

Java JsInterop-获取数组中的值,java,arrays,gwt,jsni,gwt-jsinterop,Java,Arrays,Gwt,Jsni,Gwt Jsinterop,我在JsInterop中创建了自己的自定义数组: @JsType(isNative = true, namespace = JsPackage.GLOBAL, name = "Array") public interface Array<T> { public void push(T value); @JsProperty(name = "length") public int getLength(); @JsProperty(name = "l

我在JsInterop中创建了自己的自定义数组:

@JsType(isNative = true, namespace = JsPackage.GLOBAL, name = "Array")
public interface Array<T> 
{
    public void push(T value);

    @JsProperty(name = "length")
    public int getLength();

    @JsProperty(name = "length")
    void setLength(int newLength);

    @JsOverlay
    default T get(int index) {
        return JsArrayHelper.getArrayValue(this, index);
    }
}
@JsType(isNative=true,namespace=JsPackage.GLOBAL,name=“Array”)
公共接口阵列
{
公共空间推送(T值);
@JsProperty(name=“length”)
公共int getLength();
@JsProperty(name=“length”)
void setLength(int newLength);
@JsOverlay
默认T获取(int索引){
返回JsArrayHelper.getArrayValue(这个,索引);
}
}
下面是缩小的JsArrayHelper类:

public class JsArrayHelper 
{
    //TODO: Eliminate JSNI. Better way to do this?
    public static native <T> T getArrayValue(Array<T> a, int i) /*-{
        return a[i];
    }-*/;
}
公共类JsArrayHelper
{
//TODO:消除JSNI。更好的方法?
公共静态本机T getArrayValue(数组a,int i)/*-{
返回一个[i];
}-*/;
}
有没有更好的方法来获取数组的值而不是使用JSNI?

使用lib,这个lib应该包含一些实用程序,用于处理JsInterop无法完成的任何事情,并且lib将保持与GWT和j2cl的兼容性。lib非常小(只有10个类,其中2个是内部的),所以只需将其添加到项目中并探索其所有实用程序


因此,不用自定义的
Array.get(int)
JsArrayHelper
类,而是使用
jsinterop.base.JsArrayLike.getAt(int)

谢谢。现在就试试看。我假设我还需要继承:jsinterop.base.base。但是我得到了这个错误:“没有可用于jsinterop.base.JsArrayLike类型的源代码;您忘记继承所需的模块了吗?”我认为您需要使用GWT2.8.1。