2011-08-22 71 views
0

我打算每天進行數百萬次的日常工作。我創建了一個的XMLGregorianCalendar來處理從XML提要日期爲這樣:如何將XMLGregorianCalendar重置爲新值

XMLGregorianCalendar xCalEst = null; 
xCalEst = DatatypeFactory.newInstance().newXMLGregorianCalendar("2011-08-09T21:50:00Z"); 

如日期字符串將來自其他來源的到來。由於我需要做很多工作,我想,出於性能原因,我應該將日曆創建爲靜態,並創建一次。問題是沒有(簡單)的方式來重新設置新的傳入日期字符串的日曆。我想我能做的就像這樣:xCalEst.reset(「2011-08-09T21:55:00Z」);

我是否過度關注性能,只是讓對象每次創建和銷燬,還是有一種簡單的方法來做到這一點?

請注意我是一位老C程序員,剛開始使用Java。

回答

0

我從來沒有嘗試過,但可以使用setTimesetTimeZone等方法。這種方法只有在您按順序發送消息時纔有效,例如在一個線程中。由於Java(不同於C)是面向對象的語言,它的自然行爲是創建和使用對象。您應該首先證明XMLGregorianCalendar的連續創建是性能/內存瓶頸,然後嘗試優化。在一般情況下,不要小看垃圾收集:-)

電源鑑於你的例子中,你應該首先考慮到「緩存」的的DatatypeFactory:

DatatypeFactory dtf = DatatypeFactory.newInstance(); 
dtf.newXMLGregorianCalendar("2011-08-09T21:50:00Z"); 
相關問題