在构造函数中初始化final变量

时间:2014-07-02 16:24:14

标签: java constructor final

我试图在我班级的构造函数中初始化一个private final变量。我发现这个帖子解释了如何做到这一点(Initialize a static final field in the constructor),但是eclipse似乎并不喜欢我的代码。我想知道是否有人可以说明我可能做错了什么。

public class A {
  final private String myString;

  public A() {
    myString = "content";
  }
}

使用此代码我得到:

  

空白的最终字段myString可能尚未初始化

这似乎与我链接的主题中的示例类似。

感谢您的帮助!

1 个答案:

答案 0 :(得分:5)

您的代码完全有效。这可能是由以下原因造成的:

  1. 错误的IDE设置
  2. 损坏或替代的javac编译器。
  3. 重新下载IDE,您可能希望下载最新版本并执行全新安装。您也可以尝试再次下载和安装JDK(最好是最新版本)。

    只是一点提示。在Java中,存在一种变量可见性修饰符首先出现的约定。因此,学习写私人决赛而不是最终私人。