报告其中的保护字段不是 final@GuardedBy 注解。

在非 final 字段上进行保护可能会导致意外的竞争条件,因为该字段的值会被锁定(可能会变化),而不是锁定字段本身。

示例:


    private ReadWriteLock lock = new ReentrantReadWriteLock(); //非 final 保护字段
    private Object state;

    @GuardedBy("lock")
    public void bar() {
        state = new Object();
    }

支持的 @GuardedBy 注解是: