gpt4 book ai didi

java在reterofit 2 api调用中找不到局部变量

转载 作者:行者123 更新时间:2023-12-01 09:49:27 27 4
gpt4 key购买 nike

我已经完成了一个 API 调用来检索消息列表,然后我想检查每条消息的标志是否为 2,然后是否执行另一个 API 调用来接收有关该消息是否已“付费”的信息如果它已将对象消息更改为paid = true;

这是我失败的尝试。

for (int i = 0; i < chatHistory.getData().size(); i++) {
final ChatMessage chatMessage = chatHistory.getData().get(i).getBody();
if (chatMessage.flag.equals("2")) {
RestClient.getInstance().getApiService().getPaymentRequest(chatMessage.payment_request_id, new Callback<SinglePaymentRequest>() {

@Override
public void success(SinglePaymentRequest singlePaymentRequest, Response response) {
Payment payment = singlePaymentRequest.getPayment();
if(payment.getStatus().equals("paid")) {
chatMessage.isPaid=true;
}
}

@Override
public void failure(RetrofitError error) {
System.out.println("fail");
}
});
}

chatMessages.add(chatMessage);
Log.e("chat history", chatMessage.from);
}

addData(chatMessages);

我面临的问题是 api 调用找不到局部变量 chatmessage,有什么想法可以解释为什么吗?

谢谢

最佳答案

注意代码new Callback<SinglePaymentRequest>()创建新的回调对象?它无法访问其外部的变量,这也是有充分理由的。

您应该做的是调用容器类(回调的父级)的一部分的 setter 方法,该方法将依次操作您想要更改的值。

关于java在reterofit 2 api调用中找不到局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37698841/

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