GWT JavaScriptObject重载通用失败

GWT JavaScriptObject重载通用失败,javascript,gwt,Javascript,Gwt,我试图用一个处理JavaScriptObjects的列表重载List public class JsList<T extends JavaScriptObject> extends JavaScriptObject implements List<T> { etc...} 当函数尝试查找重载函数时,它失败了,因为JsList的类型T通过擦除等同于JavaScriptObject,而List的类型T等同于Object。对此有什么建议吗?如果一个接口最多只能由一个JSO实现

我试图用一个处理JavaScriptObjects的列表重载List

public class JsList<T extends JavaScriptObject> extends JavaScriptObject implements List<T>
{ etc...}

当函数尝试查找重载函数时,它失败了,因为JsList的类型T通过擦除等同于JavaScriptObject,而List的类型T等同于Object。对此有什么建议吗?

如果一个接口最多只能由一个JSO实现,那么删除类型变量的边界如何

另一种方法是将JSO包装到对象实现列表中,而不是让JSO实现接口本身

作为旁注,请记住Java列表比JS数组有更多的约束。例如,您可以在JS中执行以下操作:

var arr = [];
// arr.length is 0
arr[3] = "foo";
// arr.length is now 4
arr.length = 2;
// arr.length is now 2
// arr[3] can be retrieved but is 'undefined'
这在Java中是无法做到的:

列表=新的ArrayList; //列表大小为0 list.put3,foo;//← 抛出IndexOutOfBoundsException //list.get3也会抛出
var arr = [];
// arr.length is 0
arr[3] = "foo";
// arr.length is now 4
arr.length = 2;
// arr.length is now 2
// arr[3] can be retrieved but is 'undefined'