Java 空白最终字段名可能未初始化错误。

Java 空白最终字段名可能未初始化错误。,java,Java,下面的代码在第1行给出下面提到的编译错误 空白的最终字段名可能尚未初始化 我的问题是为什么会出现这个错误,因为我已经在它的构造函数中初始化了字段 public class Test1 { private final String name; public Test1() { name = "abc"; } @SuppressWarnings("rawtypes") private final Function fs = n -&

下面的代码在
第1行给出下面提到的编译错误

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

我的问题是为什么会出现这个错误,因为我已经在它的构造函数中初始化了字段

    public class Test1 {
    private final String name;

    public Test1() {
        name = "abc";
    }

    @SuppressWarnings("rawtypes")
    private final Function fs = n -> {
        System.out.println(this.name);// Line 1
        return n;

    };

    public static void main(String[] args) {
        new Test1();
    }
}

在对象创建过程中,实例初始化器(即,对实例变量和初始化块的赋值)在构造函数运行之前执行,因此,它们需要在此之前初始化值。应采取以下措施:

public class Test1 {
    private final String name;

    public Test1() {
        name = "abc";
        fs = n -> {
            System.out.println(this.name);// Line 1
            return n;

        };
    }

    @SuppressWarnings("rawtypes")
    private final Function fs;

    public static void main(String[] args) {
        new Test1();
    }
}

你已经得到了最后一个字段,但是没有任何设置。错误是否真的显示为“第1行”?@SteveSmith——我提到过这个吗???我在第1行说过,我只是想澄清一下,您遇到的问题是您认为您遇到的问题,而不是其他问题,因为您的代码说问题实际上在第10行(大约)。