我知道这可能会被点踩,但这是一件让我感到有趣的事情。
public class finaltesting
{
public static final String v=900; //requires initialization
public static void main(String []args)
{
final int c; // doesn't need initialization
switch(get())
{
case 0:
System.out.println("zero");
break;
case 1:
System.out.println("one");
break;
case 2:
System.out.println("two");
break;
case 3:
System.out.println("three");
}
}
static int get()
{
return (int)(Math.random()*4);
}
}
但是,最终变量需要初始化,那么为什么“final int c;”没有任何编译错误呢?
这是否意味着最终实例变量和最终局部变量完全不同?
(*对于那些认为这可能是“如何使用最终变量”的重复问题的人来说,这不是关于本地和实例最终变量的问题。)