我得到了几个类似代码行的以下摘要:
LabResult类是一个单例,因此成员字段testname是 用户之间共享。结果是一个用户可以看到另一个用户 用户的数据。
这是代码行:
public void setTestname(String testname) {
this.testname = testname;
}
我有57个这样的错误,因为几乎每种形式都会发生这种错误。这里真的有安全错误吗?
答案 0 :(得分:2)
我认为您展示的代码是类LabResult
的一部分。从类的名称来看,我猜你创建的不仅仅是该类的一个对象,所以你不想使用单例(这是一个仅限于自身的一个实例的类)。否则,一个用户将设置该类中的字段,然后另一个用户将覆盖该数据,然后第一个用户将获取其他用户的数据。可能不是你想要的。
答案 1 :(得分:0)
基本上任何实例变量都应该是常量,即为“静态最终变量”,但是如果您的实例变量没有最终值,我们可以声明您的测试名称如下
private static volatile testname;
详细信息可以在这里找到。 Race condition - field member issue