我有以下的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