为什么我可以在Android AIDE中为最终变量重新分配新值?

Muh*_*man 8 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);
    }

}
Run Code Online (Sandbox Code Playgroud)

我在Android中使用AIDE应用程序...它已成功编译并打印33.

Ste*_*n C 4

如果你能做到这一点,那就是 AIDE 应用程序中的一个错误。您应该向开发商报告。符合 JLS 的 Java 实现不允许重新分配final变量(如下所示)。

\n

如果您想向他们提供 JLS 规范参考来支持您的错误报告:

\n
\n

JLS 4.12.4final变量

\n

变量可以声明为final。最终变量只能分配一次。如果对最终变量进行赋值,则会出现编译时错误,除非在赋值之前立即明确未对其进行赋值(\xc2\xa716 (明确赋值))。

\n
\n