我当前有一个具有 void 函数的代码,并且该函数中有一些被 try/catch 包围的值,我需要获取该值。
知道如何从 try/catch 中提取值吗?无法真正将函数更改为字符串方法。
下面是代码:
protected void onPostExecute(JSONObject json) {
if (json != null) {
Toast.makeText(FindFriends.this, json.toString(),
Toast.LENGTH_LONG).show();
try {
name = json.getString("name");
System.out.println(name);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
提前致谢!
编辑。添加了更多代码以进行澄清。
class AttemptLogin extends AsyncTask<String, String, JSONObject> {
// JSON parser class
JSONParser jsonParser = new JSONParser();
private static final String LOGIN_URL = url;
@Override
protected JSONObject doInBackground(String... args) {
// TODO Auto-generated method stub
// here Check for success tag
try {
HashMap<String, String> params = new HashMap<>();
params.put("hp", args[0]);
JSONObject json = jsonParser.makeHttpRequest(
LOGIN_URL, "POST", params);
if (json != null) {
Log.d("JSON result", json.toString());
return json;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
最佳答案
您必须将一个对象传递到该方法中,然后将所需的值分配给该对象的属性
class DataObject {
private String name;
//getter & setter
...
}
还有:
protected void onPostExecute(JSONObject json, DataObject do) {
...
do.name = json.getString("name");
...
}
关于java - 如何从 void 函数中获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32472215/