我有以下的Java類:爲什麼我的靜態變量var在通過靜態方法訪問時未初始化?
public class CWTokenMap {
public static ConcurrentMap<String, String> allTokens
= new ConcurrentHashMap<String, String>();
public static void putTokenData(final String token, final String user) {
allTokens.put(token, user);
}
}
當我運行我的應用程序,我試圖從另一個類訪問putTokenData
方法,我也得到了行allTokens.put(...)
一個NullPointerException
。爲什麼我會得到這個異常?
我的理解是,在我們訪問putTokenData
方法時應該初始化靜態ConcurrentMap
,但這裏似乎並非如此。是否有在初始化靜態變量之前調用靜態方法的情況?
'token' null? –
你的'user'或'token'是'null'嗎? –
是的,在我測試的情況下令牌爲空。我將用非空的標記進行測試。 – MRenauld