Gwt 只要在地图上输入

Gwt 只要在地图上输入,gwt,Gwt,我从服务器收到一张地图 当我试图从这个映射中获取值时,总会返回null,但我确信,该映射包含这样的值: public void updateView(Map<Long, JavaScriptObjectImpl> data) { table.setRowData(new ArrayList<JavaScriptObjectImpl>(data.values())); table.redraw(); if (selectedFileId != -1)

我从服务器收到一张地图

当我试图从这个映射中获取值时,总会返回null,但我确信,该映射包含这样的值:

public void updateView(Map<Long, JavaScriptObjectImpl> data) {
    table.setRowData(new ArrayList<JavaScriptObjectImpl>(data.values()));
    table.redraw();
    if (selectedFileId != -1) {
        JavaScriptObjectImpl object =data.get(selectedFileId); // null is returned
        consoleLog(String.valueOf(selectedFileId));  // this line prints "11001"
        consoleLog(String.valueOf(data));            // this line prints "{11001=[object Object]}"
        boolean b = data.containsKey(selectedFileId);
        consoleLog(String.valueOf(b));               // this line prints "false"

        ...
    }
}
有人知道在gwt中可以使用Long-as键吗? 或者请帮我解决我的问题

谢谢大家!

在gwt中是否可以在地图中使用Long as键

是的,只要在地图中键入,GWT中就没有约束

请直接从代码中查看这一行

consoleLog(String.valueOf(data)); // this line prints "{11001=[object Object]}"
很明显,数据包含一个键11001和一个非空值


如果该值为null,那么它将打印类似于{11001=null}

的内容。我已经找出了问题的原因

for (int i = 0; i < allFilesInfo.length(); i++) {
        FileInfoJS info = allFilesInfo.get(i);
        filesInfo.put(Long.parseLong(String.valueOf(info.getFileId())), info);
}
当我形成map时,info.getFileId的值并不长,而是JSObject。
不幸的是,我无法解释

它很长。它是class字段private Long selectedFileId;好的,让我试着找出其他的可能性。你能在map.try System.out.printlndata.keySet中分享你的代码吗;打印键。对于int i=0;i