我有隻是一個「簡單」同步鎖塊作爲這樣的:爲什麼我會在Synchronized Lock上得到NullPointerException?
private final Object screenLock = new Object();
public void Update(double deltaTime)
{
synchronized (screenLock)
{
screenManager.Update(deltaTime);
}
}
public void Draw()
{
synchronized (screenLock)
{
screenManager.Draw();
}
}
deltaTime
不null
,screenManager
不null
,所以我有點失落。
我知道我不應該對這樣的高級別進行鎖定,但是無論我在哪裏放置塊,問題都會持續存在。我有兩個線程運行到Update
和Draw
都與screenLock
。
什麼會導致鎖上的NullPointerException
?
跟蹤:
顯示java.lang.NullPointerException在 com.dnx.manavo.ScreenManager.Update(ScreenManager.java:107)在 com.dnx.manavo.ApplicationActivity.Update(ApplicationActivity.java :98) 在com.dnx.manavo.GameThread.run(GameThread.java:43)
有什麼'NullPointerException'的完整堆棧跟蹤?你能否提供一個演示NPE的完整實例? – Jeffrey
你怎麼知道'deltaTime'和'screenManager'不是null? –
@AdamBatkin'deltaTime'是一個基元,它不能是'null'。 – Jeffrey