Java中的空白final

在Java中,最终变量只能分配一次。可以在声明期间或以后分配它。如果最终变量未分配任何值,则将其视为空白最终变量。以下是管理空白最终变量初始化的规则。

  • 空白实例级别的最终变量不能保留未初始化。

  • 空白的Instance级最终变量必须在每个构造函数中初始化。

  • 空白的Instance级最终变量不能在类方法中初始化。

  • 空白的静态最终变量不能保留未初始化。

  • 静态最终变量必须在静态块中初始化。

  • 静态最终变量不能在构造函数或类方法中初始化。

示例

public class Tester {
   public final int a;
   public static final int b;

   static {
      b = 2;
   }          

   Tester() {
      this(1);        
   }

   Tester( int a) {
      this.a = a;
   }

   public static void main(String[] args) {

      Tester tester = new Tester();
      System.out.println("a = " + tester.a + ", b = " + b);
   }
}

输出结果

a = 1, b = 2