Java - 无法获取从本地方法设置的私有字符串

Java - Unable to get private String that was set from a local method

我觉得问这个问题很愚蠢并搜索了 similar questions 但我不明白为什么我可以设置 private String title 但无法获取它。

我有一个 class 发出 HTTP 请求以获取一些 JSON,解析它并设置来自 processResponse() 的实例变量。当我在 setTitle()getTitle() 中使用 GWT.log() 时,控制台显示 setTitle() 具有值但 getTitle()undefined.

我正在使用 GWT,如果有区别的话。这个 class 将用于创建对象,这些变量将在整个程序中使用。我在这里做错了什么?

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;
    }
}

我在 的帮助下解决了问题。

在我调用 getTitle() 时,对 generateRequest() 的异步调用尚未完成。由于当时未设置 title,因此我得到 undefined.

根据另一个问题的建议,我修改了我的代码以执行一个方法,其中 titlegenerateRequest() 完成后作为参数传递 -

public void onResponseReceived(Request request, Response response) {
                    MyOtherClass.newMethod(processResponse(response));
                }