为什么我可以在 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 规范参考以支持您的错误报告:
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)).
这怎么可能?我怎样才能更改标记为最终的变量?
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 规范参考以支持您的错误报告:
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)).