2011-03-07 9 views
5

के रूप में चिह्नित करें मेरे पास कुछ तृतीय पक्ष लाइब्रेरी Foo कक्षा FooBar के साथ चिह्नित है। मुझे लगता है कि कक्षा FooBar बुरी तरह से डिजाइन किया गया है। मैं अपना खुद का माईबार एडाप्टर पैटर्न के रूप में लिखना चाहता हूं। क्या मैं मूल कोड FooBar@Deprecated के रूप में अपने कोड को संशोधित किए बिना चिह्नित कर सकता हूं?बहिष्कृत तृतीय पक्ष वर्ग

उत्तर

2

@deprecated को कक्षा/विधि को ध्वस्त करने के लिए स्रोत में जोड़ा जाना चाहिए। तो आप किसी और के कोड को बर्बाद नहीं कर सकते हैं।

लेकिन अगर आपको लगता है कि आप एक मानक के रूप में अपनी परियोजना में उपयोग करने के लिए पसंद करते हैं एक बेहतर विकल्प है, तो आप इस मानक अन्य तरीकों से, उदाहरण के लिए checkstyle में एक नियम के रूप थोपना कर सकते हैं।

+0

धन्यवाद। मैं चेक-स्टाइल के बारे में पढ़ूंगा। –

3

आप इसे चिह्नित नहीं कर सकते के रूप में इतना संकलन, स्रोत

+1

शायद आप * [बहिष्करण विशेषता] जोड़ने के लिए कुछ बाइटकोड-हेरफेर कर सकते हैं (http://java.sun.com/docs/books /jvms/second_edition/html/ClassFile.doc.html#78232)। लेकिन मुझे नहीं लगता कि यह इसके लायक है। –

+0

धन्यवाद, वास्तव में मेरे पास स्रोत है। लेकिन मैं इसमें कोई संशोधन नहीं करता हूं। सबसे पहले, अन्य टीम के सदस्य संशोधित lib का उपयोग करने के बारे में आसानी से भूल सकते हैं। दूसरा, यह निर्माण और वितरण प्रक्रिया में नया मुद्दा बनायेगा और मुझे यकीन नहीं है कि मैं लाइसेंस द्वारा कोड संशोधन कर सकता हूं। –

+0

@ जोचिम, जानकारी के लिए धन्यवाद। –

2

की आवश्यकता होगी एक विकल्प के रूप अपने आईडीई के "संदर्भ लगता है" फ़ंक्शन का उपयोग सभी स्थानों पर जहां अपने कोड हमलावर वर्ग का उपयोग करता है खोजने के लिए बिना पदावनत। या "grep" का प्रयोग करें।

+1

हाँ, धन्यवाद। लेकिन असली कार्य _future_ में 'FooBar' उपयोग को रोकता है। –

1

बेशक, कोई कक्षा में बहिष्कृत एनोटेशन जोड़कर कक्षा फ़ाइल को बदल सकता है। (लेकिन मैं ऐसा करने के लिए आवश्यक उपकरणों के साथ कुशल नहीं हूं।)

+0

हाँ। हाँ मैं। लेकिन परियोजना में नया सदस्य हो सकता है कि मूल पुस्तकालय का उपयोग करने का फैसला कैसे किया जा सकता है। शायद, कुछ चेकस्टाइल उपयोग सबसे अच्छा समाधान होगा। –