Java ThreadLocal实例在某些情况下会变为null

Java ThreadLocal实例在某些情况下会变为null,java,thread-local,Java,Thread Local,正在将ThreadLocal实例获取为null。使用以下代码,我创建了新的ThreadLocal实例 private static final ThreadLocal<SimpleDateFormat> inputSdfLocal = new ThreadLocal<SimpleDateFormat>() { protected SimpleDateFormat initialValue() { return

正在将ThreadLocal实例获取为null。使用以下代码,我创建了新的ThreadLocal实例

private static final ThreadLocal<SimpleDateFormat> inputSdfLocal = new ThreadLocal<SimpleDateFormat>()
    {
        protected SimpleDateFormat initialValue()
        {
            return new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
        };
    };

此时,我将ThreadLocal->InputsFlocal实例设置为null。请任何人解释一下,为什么ThreadLocal实例会变为null。

非常有趣。从何处调用
InputsFlocal.get()
?你发现什么模式了吗?什么时候发生的?或者每次跑步都是随机的?它是随机的,并且在同一个类中调用。我调用了ThreadLocal实例很多次(超过10次),在某个时刻,我得到了ADLOCAL实例的null,之后我总是得到null。然后我将终止我的jboss实例并启动一个新的jboss实例,这意味着我可以获取ThreadLocal实例以进行进一步处理。您可以检查jboss日志中是否有任何错误/异常吗?我想不出其他任何东西。你能看看你的代码,看看你是否调用过
InputsFlocal.set
InputsFlocal.remove
?@durron597-谢谢你的回复。我使用InputsFlocal.get()只是为了获取所需的日期格式。我从未在代码中使用过InputsFlocal.remove()和set()。
SimpleDateFormat inputSdf = inputSdfLocal.get();