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

Why can I re-assign a new value to a final variable in Android AIDE?

这怎么可能?我怎样才能更改标记为最终的变量?

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

        NUM = 22;
        NUM = 33;

        System.out.println(NUM);
    }

}

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

如果你能做到这一点,那就是 AIDE 应用程序中的错误。您应该向开发人员报告。 Java 的 JLS 兼容实现不允许重新分配 final 变量(像这样)。

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

JLS 4.12.4 final variables

A variable can be declared final. A final variable may only be assigned to once. It is a compile-time error if a final variable is assigned to unless it is definitely unassigned immediately prior to the assignment (§16 (Definite Assignment)).