Androidfinal变量是无变量?

Android final variable is no variable?

我有这样的空白:

public static void checkStateSignal(final int counter) {
    for (int l = 0; l < counter; l += 10) {
        if (counter - l < 9) {

            Handler handler = new Handler();
            handler.postDelayed(new Runnable() {
                @Override
                public void run() {
                ArraySignal.LoggerStatus.get(counter) = separated[1];
                }
            },150);
        } 
    }
}

其中 ArraySignal 是 class,LoggerstatusArraylist。我在

上收到错误
ArraySignal.LoggerStatus.get(counter) = separated[1];

这是预期的变量。因此,出于某种原因,final 变量不是变量,并且 ArrayList.get 不想获取值位置而不是变量位置,这对我来说似乎非常不合逻辑,因为您可以获取常量。我错过了什么吗?也非常欢迎问题的解决方案。

这是因为您正在为 ArrayList 使用访问器 .get(index) 并且 return 一个值,您需要使用 .add(index,elem) 在给定处添加一个元素位置。选中此 link 环顾四周 Add object to ArrayList at specified index

你可以定义一个新的class:

Class NewRunnable extends Runnable
{
   public int counter;
   public NewRunnable(int _counter)
   {
       counter = _counter;
       super();
   }
}

然后在您的代码中使用它,例如:

handler.postDelayed(new NewRunnable(counter) {
                @Override
                public void run() {
                String[] separated;
                ArraySignal.LoggerStatus.get(counter) = separated[1];
                }
            },150);
ArraySignal.LoggerStatus.get(counter) = separated[1]

我认为问题在于,您正在尝试为函数设置值