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

时间:2015-01-24 19:03:42

标签: java final

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

我理解错误背后的原因

  

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

当我尝试做类似

的事情
  final Object[] items;

但我关心的是JDK ArrayBlockingQueue实现HERE。如何使用相同的行(第87行)没有错误?

1 个答案:

答案 0 :(得分:4)

这是因为字段在构造函数

中初始化
  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();
    }