报告其中的锁表达式引用非 final 字段的 synchronized 语句。

这样的语句不太可能包含有用的语义,因为不同的线程即便在对同一对象操作时也可能获取不同的锁。

示例:

  private Object o;
  public void foo() {
    synchronized (o) // 在非 final 字段上同步
    { }
  }