Основываясь на идее @EduardWirch о классе-обёртке, я создал JsList, который использует расширенную версию JsArray, чтобы обрабатывать большую часть кода изначально, вы можете получить его здесь JsList . Это позволяет создавать JsList через JsArrayExtend примерно так:
public class Values extends JavaScriptObject
{
protected Values (){};
static public final native JsArrayExtend getValues(String json) /*-{return eval('('+json+')');}-*/;
}
public class Value extends JavaScriptObject
{
protected Value (){}
public final native String getName() /*-{return this.name;}-*/;
}
...
JsList<Value> valueList=JsList<Value>(Values.getList(jsonString));
Это может быть передано любому объекту, который принимает List <> и, кажется, работает нормально. Я не проверил его полностью, поэтому, если вы обнаружите какие-либо проблемы, сообщите мне, и я обновлю его.
Первоначально я создал один из типов JavaScriptObject, который использует собственный код для работы в качестве списка, который вы можете увидеть здесь JsList расширяет JavaScriptObject , однако он нарушает систему типизации GWT и, хотя он работает для компиляций Javascript, он не делает работать иначе.