0
因此,此代码是在考试中给出的,问题在于它有什么问题。它意在创建类型SomeClass
的新对象,但前提是它们不是早期创建的。Java多线程 - 识别代码中的错误
class Foo {
private SomeClass x = null;
public synchronized SomeClass getX() {
if (x == null)
x = new SomeClass();
return x;
}
}
我的猜测是,x
和getX
应该被声明为static,因为否则可能会出现的x
多个副本。那是对的吗?如果是的话,那是代码中唯一的问题?
这个类没有任何内在的错误(除了丢失的大括号,错误的命名和缺少文档)。它不能做它应该做的事情,但由于它没有文档,我们不知道它应该做什么。 – 2013-04-07 14:44:55
一个右大括号('}')缺失。 – 2013-04-07 14:45:02
是的,如果你只需要一个实例,它应该是静态的。 – assylias 2013-04-07 14:47:01