gpt4 book ai didi

java - GWT for 循环不是循环

转载 作者:行者123 更新时间:2023-12-01 14:44:07 25 4
gpt4 key购买 nike

我正在开发一个 GWT 应用程序,我有这个方法:

    private static List<Ticket> getTicketsFromJSON(String ticketsJSONString) {
JSONValue ticketsArrayValue = JSONParser.parseLenient(ticketsJSONString);
JSONArray ticketsArray = ticketsArrayValue.isArray();
List<Ticket> ticketsList = new LinkedList<Ticket>();

for (int i = 0; i < ticketsArray.size(); i++) {

JSONObject ticketJSON = ticketsArray.get(i).isObject();
Ticket ticket = new Ticket((int)ticketJSON.get("id").isNumber().doubleValue(),
ticketJSON.get("name").isString().stringValue(),
ticketJSON.get("description").isString().stringValue(),
(int)ticketJSON.get("complexity").isNumber().doubleValue(),
(int)ticketJSON.get("priority").isNumber().doubleValue(),
(long)ticketJSON.get("started").isNumber().doubleValue(),
(long)ticketJSON.get("finished").isNumber().doubleValue(),
(long)ticketJSON.get("timespent").isNumber().doubleValue());
ticketsList.add(ticket);
}
Window.alert("Out of the cicle");
return ticketsList;
}

似乎我进入了循环,但在创建 Ticket 对象后什么也没有发生。可能该对象甚至没有初始化。这是票证类别:

    package org.kanbanizer.client.beans;

public class Ticket {
private int id;
private String name;
private String description;
private int complexity;
private int priority;
private long started;
private long finished;
private long timespent;

public Ticket() {
}

public Ticket(int id, String name, String description, int complexity,
int priority, long started, long finished, long timespent) {
this.id = id;
this.name = name;
this.description = description;
this.complexity = complexity;
this.priority = priority;
this.started = started;
this.finished = finished;
this.timespent = timespent;
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getDescription() {
return description;
}

public void setDescription(String description) {
this.description = description;
}

public int getComplexity() {
return complexity;
}

public void setComplexity(int complexity) {
this.complexity = complexity;
}

public int getPriority() {
return priority;
}

public void setPriority(int priority) {
this.priority = priority;
}

public long getStarted() {
return started;
}

public void setStarted(long started) {
this.started = started;
}

public long getFinished() {
return finished;
}

public void setFinished(long finished) {
this.finished = finished;
}

public long getTimespent() {
return timespent;
}

public void setTimespent(long timespent) {
this.timespent = timespent;
}

}

我尝试使用 Integer.parseInt 来获取值,但结果是相同的。作为该方法的参数的字符串不为空。如果有人知道为什么它不起作用,请告诉我。

最佳答案

我猜测您的代码在 JSON 获取值上崩溃,例如 (int)ticketJSON.get("complexity").isNumber()

如果这些值为空或缺失会发生什么?您的代码将因空指针异常而崩溃 - NPE。

输入一些行来检查 NPE。

一般来说,您可能会考虑使用 JavaSsript 覆盖类型来处理此类事情。您可以只为票证创建覆盖,而不是复制每个值:http://googlewebtoolkit.blogspot.ca/2008/08/getting-to-really-know-gwt-part-2.html

关于java - GWT for 循环不是循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15634138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com