0
我觉得很蠢问这个和搜索similar questions,但我不明白为什么我能够设置private String title
但无法得到它。Java - 无法获得从本地方法设置的私人字符串
我有一个类,使得HTTP请求获得一些JSON,解析它并设置实例变量从processResponse()
。当我在setTitle()
和getTitle()
中使用GWT.log()
时,控制台显示setTitle()
具有该值,但getTitle()
为undefined
。
我正在使用GWT,如果这有所作为。这个类将用于创建对象,这些变量将在整个程序中使用。我在这里做错了什么?
public class Requester {
//other variables
private String title;
public Requester(UrlBuilder url) {
this.setURL(url);
this.generateRequest();
}
public void setURL(UrlBuilder url) {
this.url = url;
}
private void generateRequest() {
RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(url.getUrl()));
builder.setHeader("Authorization", authHeader);
try {
builder.sendRequest(null, new RequestCallback() {
// onError() method
public void onResponseReceived(Request request, Response response) {
processResponse(response);
}
});
} catch (RequestException e) {
//exception code
}
}
private void processResponse(Response response) {
//code to get title and assign it to String output
setTitle(output);
}
private void setTitle(String output) {
this.title = output;
}
public String getTitle() {
return this.title;
}
}
在'processResponse'方法,其中/如何你访问变量'输出',用作'setTitle'的参数? –
如果'setTitle'被调用并且设置了一个特定的值,并且后面的'getTitle'调用显示为'null',那么它与'Requester'中的* instance *不同。调用代码正在对另一个“请求者”对象进行调用。将日志语句插入到构造函数中进行确认,然后查看进行调用的代码,因为问题是* there *,而不是此代码中的代码。 – Andreas
@ChrisSprague我为这个赋值声明了一个本地字符串 - 'String output = jsonArray.get(0).isObject()。get(“title”)。toString();' –