声明后可以初始化最终变量吗?

nge*_*esh 4 java syntax final

这甚至是可能的,很少有人认为它可能,我在这里看到它也链接 ..但是当我亲自尝试它给我编译时错误..

我的意思是,

Class A{
    private final String data;

    public A(){
        data = "new string";
    }
}
Run Code Online (Sandbox Code Playgroud)

提前致谢..

Bor*_*jev 7

对的,这是可能的.类用小案例c编写.否则你的代码完全没问题(除了识别):

public class A {
   private final String data;

   public A() {
      data = "new string";
   }
}
Run Code Online (Sandbox Code Playgroud)


Mur*_*zen 6

您可以在声明后初始化最终实例变量。

  • 如果它是静态的,则必须在静态初始化块中对其进行初始化。
  • 否则,您必须在构造函数中对其进行初始化。

您发布的代码的问题是大写C。应该class像鲍里斯指出的那样。