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