在Java中,在静态方法本身内部声明的变量是静态的吗?
假设:
private static boolean A() { int parsedUntil = 0; ... ... ... }
ParsedUntil 是否被视为静态变量?我注意到我不能在这个静态函数中将其声明为静态。
后续问题:我读到静态变量只会初始化一次。这是否意味着我第一次调用函数A()时,该值将设置为零,但每隔一次我调用A()时,该行将被省略?
假设:
private static boolean A() { int parsedUntil = 0; ... ... ... }
ParsedUntil 是否被视为静态变量?我注意到我不能在这个静态函数中将其声明为静态。
后续问题:我读到静态变量只会初始化一次。这是否意味着我第一次调用函数A()时,该值将设置为零,但每隔一次我调用A()时,该行将被省略?
不,它不是静态变量。它是一个局部变量。方法中声明的任何变量都是局部变量。如果你想要一个静态变量,你必须在方法之外声明它:
private static int parsedUntil = 0;
没有办法声明只能在单个方法中使用的静态变量。
no,是一个静态方法,并且是 A 内部的局部变量。A()
parsedUntil
像这样的修饰符在局部变量中无效(只允许 afaik)static
final
后续问题:我读到静态变量只会初始化一次。
真
这是否意味着我第一次调用函数A()时,该值将设置为零,但每隔一次我调用A()时,该行将被省略?
由于parsedUntil不是静态字段,而是静态方法中的局部变量,因此情况并非如此。