有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java 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 = "length")
    void setLength(int newLength);

    @JsOverlay
    default T get(int index) {
        return JsArrayHelper.getArrayValue(this, index);
    }
}

下面是缩小的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];
    }-*/;
}

有没有更好的方法来获取数组的值而不是使用JSNI


共 (1) 个答案

  1. # 1 楼答案

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

    因此,使用jsinterop.base.JsArrayLike<T>.getAt(int)代替您的自定义Array<T>.get(int)JsArrayHelper