我理解错误背后的原因
空白的最终字段可能尚未初始化
当我尝试做类似
的事情 final Object[] items;
但我关心的是JDK ArrayBlockingQueue实现HERE。如何使用相同的行(第87行)没有错误?
答案 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();
}