我在類下列方式使用簡單的日期格式在我的應用程序:簡單的日期格式
static SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
public static myFunction(final String strDate)
{
Date endDate = null;
endDate = MyClass.sdf.parse(strDate);
}
我使用的FindBugs這是給下面的錯誤在上面的代碼:
「作爲JavaDoc聲明,DateFormats對於多線程使用本質上是不安全的,探測器發現了一個對通過靜態字段獲得的DateFormat實例的調用,這看起來很可疑。
有人可以請解釋一下這個錯誤。我無法理解上面的消息正在試圖說明什麼。
感謝您的閱讀!
可能[重複](http://stackoverflow.com/questions/2409657/call-to-method-of-static-java-text-dateformat-not-advisable)? – Dallas
@達拉斯指出的問題不是相同的措詞,但接受的答案是有用的和相當完整的。 – madth3
大多數開發人員都明白,對於大多數不是線程安全的類,這是由於同時改變狀態。格式建立後,格式化日期不應改變狀態。僅僅在官方文檔中記錄這些不是線程安全的是不夠的。應明確記錄,即使格式化方法在實例變量中保持臨時狀態也不是線程安全的。聲明它爲靜態不只是一個新手的錯誤。類比可以在修改集合(put)和訪問集合(get)之間進行。 – YoYo