gpt4 book ai didi

java - JsInterop - 获取数组中的值

转载 作者:行者123 更新时间:2023-11-30 06:48:01 35 4
gpt4 key购买 nike

我在 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?

最佳答案

使用 com.google.jsinterop:base lib,这个 lib 应该包含 JsInterop 无法完成的任何实用程序,并且 lib 将保持与 GWT 和 j2cl 的兼容性。该库非常小(只有 10 个类,其中 2 个是内部类),所以只需将它添加到您的项目中并探索它的所有实用程序。

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

关于java - JsInterop - 获取数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44950464/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com