我有以下代码:
import net.jcip.annotations.GuardedBy;
import net.jcip.annotations.ThreadSafe;
@ThreadSafe
public class Aoeu {
@GuardedBy("this")
private long aoeu;
public long getAoeu() {
return aoeu;
}
public void setAoeu(long aoeu) {
this.aoeu = aoeu;
}
}
从我读过的内容来看,FindBugs理解JCiP注释(事实上,1.3.9附带了它们),但我没有从上面的代码中得到任何警告。根据,我希望看到:
IS: Field not guarded against concurrent access (IS_FIELD_NOT_GUARDED)
This field is annotated with net.jcip.annotations.GuardedBy, but can be accessed in a way that seems to violate the annotation.
答案 0 :(得分:1)
请查看下面显示错误的代码
class Test
{
@net.jcip.annotations.GuardedBy("this")
private int field;
/**
*
*/
public Test()
{
}
/**
*
*/
public void setField()
{
field++;
}
}