为什么要在Android AIDE中将新值重新分配给最终变量?

时间:2018-09-16 07:12:54

标签: java android final aide-ide

这怎么可能?如何更改标记为final的变量?

public class Main
{
    public static void main(String[] args)
    {
        final int NUM;

        NUM = 22;
        NUM = 33;

        System.out.println(NUM);
    }

}

我在Android上使用AIDE应用...已成功编译并打印了33

1 个答案:

答案 0 :(得分:3)

如果您可以执行此操作,则这是AIDE应用程序中的错误。您应该将其报告给开发人员。符合JLS的Java实现不允许重新分配final变量(像这样)。

如果要为他们提供JLS规范参考以支持您的错误报告:

  

JLS 4.12.4 final variables

     

可以将变量声明为final。最终变量只能分配一次。如果分配了最终变量,除非在分配(§16 (Definite Assignment))之前绝对未分配最终变量,否则这是编译时错误。