我有内部类在UI线程中运行代码,我需要将变量传递给run()方法。
我尝试在没有数组的情况下传递最终res,但是我有一个错误,需要使用数组res [0]。 在这种情况下,我需要初始化res [],因为它会抛出NullPointerExeption。
还有其他方法可以将变量传递给内部类吗?
private String sendRequest(String url, String... data) {
final Connection.Response[] res = {};
...
try {
final Connection connection = Jsoup.connect(url)
.method(Connection.Method.POST)
.cookies(cookies)
.timeout(30000)
.ignoreContentType(true);
if (data != null) {
connection.data(data);
}
((Activity) con).runOnUiThread(new Runnable() {
@Override
public void run() {
try {
res[0] = connection.execute();
} catch (IOException e) {
e.printStackTrace();
}
}
});
result = Jsoup.parse(res[0].parse().outerHtml(), "UTF-8").text();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
答案 0 :(得分:2)
res[]
被定义为一个空数组(没有位置),然后你尝试在res[]
中分配给位置0的东西,没有位置0,因为它需要给出一个大小。 ..
final Connection.Response[] res = new Connection.Response[requiredArraySize];
在您的情况下,requiredArraySize
可能是1。