FindBugs NN_NAKED_NOTIFY

工作中遇到的,NN_NAKED_NOTIFY,可能原因是你你锁的是同一个变量,但是FindBugs不能识别成是同一个变量,即使两个变量指向同一个地址,findbugs也为认为你是两个不一样的变量,举个例子吧

Object a = new Object();
Object b = a;

synchronized(a)
{
    a.notifyAll();
}

synchronized(b)
{
    b.wait();
}

这种情况虽然运行时不会报错,但是findbugs会报错

所以还是锁同一个,调用同一个对象的notifyAll()和wait()

Object a = new Object();
Object b = a;

synchronized(a)
{
    a.notifyAll();
}

synchronized(a)
{
    a.wait();
}

这样就不报FindBugs错误了

你可能感兴趣的:(findbugs,NN-NAKED-N)