报告其中的保护为非 static 字段或 thisstatic 字段或方法的 @GuardedBy 注解。

用非 static 元素保护静态元素可能会导致过度并发,多个线程可能在不同的对象上下文中锁定,来同时访问保护字段。

示例:


    private ReadWriteLock lock = new ReentrantReadWriteLock();

    @GuardedBy("lock")
    public static void bar() {
        // ...
    }

支持的 @GuardedBy 注解是: