2012-12-14 27 views
11

ऑब्जेक्ट के लिए isCancelled विधि क्यों नहीं है?जांच रहा है कि जावा टाइमर रद्द किया गया है

यदि टाइमर रद्द नहीं किया गया है, तो इसे एक कार्य निर्धारित करना है, और इसे रद्द कर दिया गया है, तो इसे सीधे (उसी धागे पर) चलाएं।

क्या IllegalStateException को पकड़ने का एकमात्र विकल्प है जो टाइमर पहले ही रद्द कर दिया गया हो सकता है? (IllegalStateException को पकड़ना गलत लगता है)।

उत्तर

14

आप कितने यकीन हैं कि आप Timer का उपयोग करना चाहते हैं? इसके बजाय ExecutorService का उपयोग करें, जिसमें isShutdown है और इसमें बूट करने के लिए कई अन्य लाभ हैं। जावा 5 के रूप में एक सामान्य सिफारिश Timer एस ExecutorService एस के साथ प्रतिस्थापित करने के लिए किया गया है।

विशेष रूप से निर्धारित निष्पादक सेवाओं के लिए ScheduledExecutorService इंटरफ़ेस है। Executors.new... विधियों में से किसी एक का उपयोग करके तत्काल करें।

+1

क्या इसका मतलब यह है कि 'टाइमर' वर्ग कम या ज्यादा बहिष्कृत है? –

+3

हाँ, आप यह कह सकते हैं। यदि यह आपके बिल को फिट करता है, तो इसका इस्तेमाल करें, लेकिन यदि नहीं, तो 'निष्पादक सेवा' पर जाएं और कभी वापस न देखें। दूसरे विचार पर, यहां तक ​​कि वह सलाह खतरनाक है: यदि आप 'टाइमर' से शुरू करते हैं और आपकी परियोजना बढ़ती है, तो आपको 'निष्पादक सेवा' के साथ शुरुआत करने पर खेद हो सकता है। –

+1

बहिष्कृत? नहीं, लेकिन बहुत सारे कार्यों के लिए अनुचित। http://stackoverflow.com/questions/2213109/java-util-timer-is-it-deprecated –

संबंधित मुद्दे