【发布时间】:2017-02-17 08:10:59
【问题描述】:
以下是我的代码,我在其中声明了一个ThreadLocal 变量:
public static final ThreadLocal<List<Object>> ARGS = new ThreadLocal<>();
我在下面的 sn-p 中使用了这个变量:
private static void getParams(Token... tokens) {
if(ARGS == null) {
new LinkedList<>();
}
if(tokens.length > 2) {
for(Token token : Arrays.copyOfRange(tokens, 2, tokens.length)) {
ARGS.get().add(ArgHelper.resolveArg(token));
}
}
}
下面一行:
ARGS.get().add(ArgHelper.resolveArg(token));
给了我NullPointerException 你我从ArgHelper.resolveArg(token) 获得价值。
【问题讨论】:
-
new LinkedList<>();这一行毫无意义。你能发布堆栈异常吗? -
引起:com.weather.bigweb.steps.keywords.Exec.getParams(Exec.java:77) 处 com.weather.bigweb.steps.keywords.Exec 处的 java.lang.NullPointerException。 exec(Exec.java:53) at com.weather.bigweb.steps.helper.KeywordHelper.execKeyword(KeywordHelper.java:40) at com.weather.bigweb.steps.helper.Step.step(Step.java:53) ... 20 更多
-
还是不相关,你怎么知道
ARGS.get().add(ArgHelper.resolveArg(token));会抛出NPE?
标签: java nullpointerexception thread-local