Call to static DateFormat As the JavaDoc states, DateFormats are inherently unsafe for multithreaded use. The detector has found a call to an instance of DateFormat that has been obtained via a static field. This looks suspicous
STCAL_INVOKE_ON_STATIC_DATE_FORMAT_INSTANCE
bug 报错示例:
private static final SimpleDateFormat SIMPLE_DATE_FORMAT = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
private static String demo() {
return SIMPLE_DATE_FORMAT.format(new Date());
}
bug原因:
对于多线程使用,dateformat本质上是不安全的。检测器发现了对DateFormat实例的调用,该调用是通过静态字段获得的。
修复方法:
private static final String SIMPLE_DATE_FORMAT = "yyyy-yyyy/MM/dd HH:mm:ss-dd";
private static String demo() {
return new SimpleDateFormat(SIMPLE_DATE_FORMAT).format(new Date());
}
每次重新生成新的SimpleDateFormat对象,问题解决