为什么静态函数在java中没有任何静态局部变量

为什么静态函数在java中没有任何静态局部变量,java,Java,以下Java程序编译失败,错误为“不允许使用静态局部变量” class Myclass { public static void main(String args[]) { System.out.println(Myfun()); } static int Myfun() { static int var= 10; return var += 1; } } 如果需要静态变量(其值将在对静态方法的连续调用中重用),请在方法外

以下Java程序编译失败,错误为“不允许使用静态局部变量”

class Myclass {

   public static void main(String args[]) { 

    System.out.println(Myfun());
   }

   static int Myfun()
   {
     static int var= 10;  

     return var += 1;
   }
}

如果需要静态变量(其值将在对静态方法的连续调用中重用),请在方法外部声明它:

static int var= 10; 
static int Myfun()
{
    return var += 1;
}

局部变量不能是静态的,因为局部变量只存在于方法的单个执行的范围内。

在静态块中,您所声明的内容将变为静态

在您的例子中,Myfun()是静态的,所以如果您想使var成为静态的,只需执行int var=10即可

class Myclass {

   public static void main(String args[]) { 

    System.out.println(Myfun());
   }

   static int Myfun()
   {
     int var= 10;  

     return var += 1;
   }
}

这可能意味着什么?局部变量只能有
final
局部变量
static
是没有用的<代码>静态有一个特殊的含义,用于特定的目的。请解释为什么不可以,我可以将局部变量声明为静态。@suryadipkumar语言就是这样定义的。我不确定这样定义它的原因。我认为这样更容易阅读。当我看到一个在方法中本地声明的变量时,我不希望在下次调用该方法时保留它的值。