GWT JsArray的自我,递归对象数组

时间:2009-06-11 16:30:10

标签: arrays gwt recursion

我正在构建一个树结构,一个对象引用它自己就像这样:

public class ProjectObjectOL extends JavaScriptObject {

    protected ProjectObjectOL() { }


    public final native boolean getStatus()  /*-{ return this.status;  }-*/;
    public final native String getError()  /*-{ return this.error_message;  }-*/;

    public final native JsArray<ProjectObjectOL> getChildren() /*-{ this.children; }-*/;


}

我的问题是我似乎无法得到对象的孩子。我已经测试了它,我很确定传回的JSON结构包含一个对象,该对象包含可以包含子等的那种类型的子数组。

...但是当试图访问有关子节点的最简单信息时,数组的长度,每次都返回0。我已经尝试过没有成功弄清楚它做错了什么,所有其他数据都返回正常,但这一件不会检索孩子。以下是我可以(直接)访问测试长度的示例:

JSONObject oResults = (JSONObject) JSONParser.parse(response.getText());
                    ProjectListOL testoutputOL = oResults.isObject().getJavaScriptObject().cast();
                    ProjectObjectOL testObject = testoutputOL.getProjectList().get(1);
                    Window.alert(testObject.getChildren().length()+"");

ProjectListOL包含一个ProjectObjectOLs数组。在上面的例子中,我只是抓住了一个我知道有孩子的人。我正在使用ColdFusion作为返回JSON对象的后端。再次,我已经多次输出这个对象,无论是在GWT还是在外部(直接从文件中转储JSON对象),验证对象确实已经设置了我期望它如何设置。

1 个答案:

答案 0 :(得分:1)

我错过了一个明显的错误:

public final native JsArray<ProjectObjectOL> getChildren() /*-{ this.children; }-*/;

OOPS:

public final native JsArray<ProjectObjectOL> getChildren() /*-{ **return** this.children; }-*/;