同步非最终字段
2022-08-31 10:00:27
每次我在非最终类字段上进行同步时都会显示一条警告。代码如下:
public class X
{
private Object o;
public void setO(Object o)
{
this.o = o;
}
public void x()
{
synchronized (o) // synchronization on a non-final field
{
}
}
}
所以我按以下方式更改了编码:
public class X
{
private final Object o;
public X()
{
o = new Object();
}
public void x()
{
synchronized (o)
{
}
}
}
我不确定上面的代码是在非最终类字段上进行同步的正确方法。如何同步非最终字段?