java - JsArray<?> 的大小为 1 但得到 "java.lang.IndexOutOfBoundsException: Index: 0, Size: 0"

标签 java gwt

我开始为此失去理智..

我想做的就是从NodeList中排除某个Node

private List<Node> excludeDraggedElement(JsArray<Node> jsNodeList) {

    List<Node> nodeList = new ArrayList<>();

    GWT.log(jsNodeList.length() + ""); // Prints: 1

    for(int i = 0; i < jsNodeList.length(); i++) {

        Element element = (Element)nodeList.get(i);

        if(element == this.draggedElement.getElement()) {
            continue;
        }           
        nodeList.add(jsNodeList.get(i));
    }

    return nodeList;
}

正如您所期望的,输出是:

1
Uncaught java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

我也尝试过使用splice

public native void remove(JsArray<?> removeFrom, int index, int count) /*-{
    removeFrom.splice(index, count);
}-*/;

但这是giving me another error :

Uncaught TypeError: arr_0_g$.splice is not a function

知道如何解决这个问题吗?

最佳答案

节点列表为空。因此 nodeList.get(i) 抛出异常。

关于java - JsArray<?> 的大小为 1 但得到 "java.lang.IndexOutOfBoundsException: Index: 0, Size: 0",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36230273/

相关文章:

Java 数组存储值

java - 我无法在 PE 文件网中使用queuequery 查询队列元素

java - 如何在 GWT 中测试生成器?

java - GWT Maven Eclipse 插件 - 由于类重复导致编译失败

javascript - 在客户端上,如何下载图像,然后作为 POST 请求发送到第三方服务器?

java - 仅启用 jbutton 上的鼠标事件 - 禁用 jbutton 的键盘事件

java - 不断获取 "following set of loggers may have been accessed"logback

java - 在数组列表中按标题显示所有 DVD 对象时遇到问题

java - GWT 和 JQuery 共存

java - 选择 GWT ComboBox 项显示值而不是文本