这怎么可能?如何更改标记为final的变量?
public class Main
{
public static void main(String[] args)
{
final int NUM;
NUM = 22;
NUM = 33;
System.out.println(NUM);
}
}
我在Android上使用AIDE应用...已成功编译并打印了33
。
答案 0 :(得分:3)
如果您可以执行此操作,则这是AIDE应用程序中的错误。您应该将其报告给开发人员。符合JLS的Java实现不允许重新分配final
变量(像这样)。
如果要为他们提供JLS规范参考以支持您的错误报告:
可以将变量声明为final。最终变量只能分配一次。如果分配了最终变量,除非在分配(§16 (Definite Assignment))之前绝对未分配最终变量,否则这是编译时错误。