synchronized
和非 synchronized
上下文中访问的非 final 字段。
volatile
字段以及构造函数和初始化器中的访问将被该检查忽略。
这种“部分同步”的访问通常是编码疏忽所致,可能导致意外的不一致数据结构。
示例:
public class Program {
Console console; // 警告: 在同步和非同步上下文中都访问字段 'console'
public synchronized void execute() {
console.print("running");
}
public void check() {
console.check();
}
}
使用该选项指定简单的 getter 和 setter 是否也算作访问。