gpt4 book ai didi

java - 每个调用的回调方法中的变量范围

转载 作者:行者123 更新时间:2023-11-30 03:16:00 25 4
gpt4 key购买 nike

在下面的代码块中,我能否在异步发布中调用的 URL 的响应中获得正确的链接值?

for (Link link:links){
client.post(link.url, params, new AsyncHttpResponseHandler() { //async
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
Log.d("test","Success Post - "+link.url);
}

@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
Log.d("test","Failed Post"+link.url);
}
})
}

最佳答案

您的匿名类实例将捕获 link 变量在创建时所具有的值。因此您将检索到正确的值。

特别注意关于迭代变量的enhanced for语义:它实际上是最终的,与基于索引的迭代中的int i不同成语。在这两种情况下,变量的作用域略有不同:i 的作用域是整个 for 循环,而 link 变量的作用域只是循环体。从语法上看,这一点不太明显,因为在这两种情况下,变量都是在 for 循环 header 中声明的。

关于java - 每个调用的回调方法中的变量范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32568085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com