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

标签 java final

PS:有类似主题的问题,但我问的是本质上不同的。

我明白错误背后的原因

the blank final field may not have been initialized

当我尝试做类似的事情时

  final Object[] items;

但让我担心的是 JDK ArrayBlockingQueue 实现 HERE .同一行(第 87 行)如何在这里没有错误地使用?

最佳答案

因为字段是在构造函数中初始化的

  public ArrayBlockingQueue(int capacity, boolean fair) {
        if (capacity <= 0)
            throw new IllegalArgumentException();
        this.items = new Object[capacity];
        lock = new ReentrantLock(fair);
        notEmpty = lock.newCondition();
        notFull =  lock.newCondition();
    }

关于java - 空白的最终字段可能尚未初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28129169/

相关文章:

java - 如何压缩文件夹并在android中通过电子邮件发送

java - eclipse +Java : Checking which data members can be made final

Java使用非final变量设置final变量

java - 坚持递归算法

java - 使用 Metamask 释放按键绑定(bind)

java - 将 HTTP 响应中的元素获取到 map 标记中

java - 这两个Java段的性能有什么区别吗?

java - 为什么一个final类不能被继承,一个final方法却可以被继承?

java - 有效的 Java : Make constructors private or package-private

java - Checkstyle 在最终变量的命名约定上与普通 Java 不同?