Не правильно передаётся переменная Java

Помогите разобраться. в методе send , значение numberS генерируется, как мне нужно. но при переходе в метод onUpdateReceived переменная принимает последнее значение массива. Как мне получить то значение, которое имеется в методе send .

public void send(){
String[] greportsArr = new String[greportsL.size()];
greportsArr = greportsL.toArray(greportsArr);
for(int i = 0; i < numL.size(); i++){
    numberL = numL.get(i);
    String reportsL = greportsArr[i];
    String[] numLArr = new String[numL.size()];
    numLArr = numL.toArray(numLArr);
    numberS = numLArr[i];
for(int it = 0; it < userids.size(); it++){
    String userid = userids.get(it);        
  ------
inlineKeyboardButton1.setText(numberS);
inlineKeyboardButton1.setCallbackData("Agree");
----
System.out.println(numberS);  // тут значение еще верное

try {
   execute(message);
} catch (TelegramApiException e) {
    e.printStackTrace();
}
}   }
   }


public void onUpdateReceived(Update update) {
----
} else if (update.hasCallbackQuery()) {
        String call_data = update.getCallbackQuery().getData();
    long message_id = update.getCallbackQuery().getMessage().getMessageId();
    long chat_id = update.getCallbackQuery().getMessage().getChatId();
    System.out.println(numberS);   // тут уже приходит последнее значение в массиве.
    if (call_data.equals("Agree")) {
        Login lgc = new Login();
         lgc.updateQ(numberS);
            String answer = "Согласовано";

Ответы (1 шт):

Автор решения: Aziz Umarov

Ну по данному коду определить почему не совсем так как вы хотите не удастся.

Вы меняете

 numberS = numLArr[i]

На каждой итерации цикла. Понятно что при завершении цикла вы получите последний элемент массива.

Проверьте значение вашей переменной после цикла.

System.out.println(numberS);
→ Ссылка