这怎么可能?如何更改标记为最终的变量?
public class Main
{
public static void main(String[] args)
{
final int NUM;
NUM = 22;
NUM = 33;
System.out.println(NUM);
}
}
我在 Android 中使用 AIDE 应用程序......它成功编译并打印33
。
如果你能做到这一点,那是 AIDE 应用程序中的一个错误。您应该将其报告给开发人员。符合 JLS 的 Java 实现不允许重新分配final
变量(像这样)。
如果您想为他们提供 JLS 规范参考以支持您的错误报告:
变量可以声明为final。最终变量只能分配一次。如果最终变量被分配给它是一个编译时错误,除非它在分配之前立即被明确地未分配(§16(定义分配))。