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

use*_*616 3 java constructor final

我正在尝试private final在我的类的构造函数中初始化一个变量.我发现这个线程解释了如何做(在构造函数中初始化一个静态的最终字段),但是eclipse似乎不喜欢我的代码.我想知道是否有人可以说明我可能做错了什么.

public class A {
  final private String myString;

  public A() {
    myString = "content";
  }
}
Run Code Online (Sandbox Code Playgroud)

使用此代码我得到:

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

这似乎与我链接的线程中的示例类似.

感谢您的帮助!

小智 5

您的代码完全有效.这可能是由于:

  1. 糟糕的IDE设置
  2. 损坏或替代的javac编译器.

重新下载IDE,您可能想要下载它的最新版本并执行全新安装.您也可以尝试再次下载和安装JDK(最好是最新版本).

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