Java: Accessing a String outside of a function

I am a hobby programmer and am trying to access returnJson outside of the onSuccess function. Inside of the function, I can see that it returns as expected. Could somebody explain why I cannot view it outside and what I can do to make it accessible on the outside?

String returnJson;
client.post(context, url, entity, "application/json", new JsonHttpResponseHandler() {
    @Override
    public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
        returnJson = response.toString();
    }
});

Log.d("get json",returnJson);

Answer

You can access it fine, but it is not initialized until the onSuccess() is called, which is likely after the Log.d() is called, due to client.post() being executed asyncronously.

Because of this, at the moment you try to log returnJson, it is not yet initialized and the logging won’t work as you expect.