2012-02-16 15 views
14

पर कई चर का नाम बदलना मैं एक बहुत बड़े जावा-प्रोजेक्ट (2500+ कक्षाओं) में काम करता हूं जो पुराने कोड मानक का उपयोग करता है जहां सभी सदस्य चर "m_" (उदा। M_temperature) के साथ उपसर्ग किए जाते हैं। वहाँ वास्तव में इस के लिए कोई कारण नहीं किसी भी अब और मुझे पसंद है उनमें से छुटकारा पाने के लिए चाहते हैं, लेकिन:कई जावा कक्षाओं में एक बार

  1. ताकि परिवर्तन मैं एक बार पर सभी चर करना चाहिए बनाने के लिए।
  2. यह किसी भी बग उत्पन्न नहीं करना चाहिए।

बस का नाम बदलने के पहले अनुभवहीन दृष्टिकोण सभी "m_variable" बस "चर" नहीं पर्याप्त रूप में है कि "चर" नाम पहले से मौजूद किसी चर के बीच नाम टकराव उत्पादन कर सकता है, और नव एक नाम दिया गया होगा।

तो, समेकित करने के लिए: मैं इन सभी अजीब सदस्य विविधता को बिना किसी परेशानी के पुनर्नामित कैसे कर सकता हूं और क्या ऊपर वर्णित किसी भी समस्या से अधिक समस्याएं हैं?

हाँ, मैं पुनर्रचना के बारे में पता कर रहा हूँ/IDEs के भीतर सुविधाओं का नाम बदलने, ध्यान में रखना कृपया है कि मैं चर पर राइट-क्लिक करके एक बार पर मापदंड से मेल खाते सभी चर और नहीं में परिवर्तन करना चाहते हैं और उन्हें एक-एक करके नामित करना।

+0

आप क्या कर सकते हैं कि ग्रहण आईडीई के रिफैक्टरिंग उपकरण का उपयोग कर। – Josnidhin

+0

हो सकता है कि आप का मतलब है कि आपको केवल उदाहरण के लिए मानदंड निर्दिष्ट करने की आवश्यकता है, "m_" के साथ उपसर्ग और "टूल" सभी वैश्विक चर के लिए पूरी परियोजना को देखेगा और इसे प्रतिस्थापित करेगा? –

+0

ब्रायन: हाँ, यही वह है जो मैं करना चाहता हूं। इंटेलिजे और ग्रहण इत्यादि में कोई कोड कोड बना सकता है कि कोड उत्पन्न करने/स्वत: पूर्ण करने पर आईडीई निम्नानुसार होता है और कक्षा-चर के लिए "m_" जैसे उपसर्ग को जोड़ना या निकालना संभव है। दुख की बात यह है कि इन चीजों को दिए गए कोड मानक को बदलते समय (मेरे मामले में कक्षा-चर के लिए उपसर्ग के रूप में m_ को हटाकर) कोई इसे पहले से मौजूद कोड पर लागू नहीं कर सकता है (जिस तरह से मैंने कम से कम पाया है) यह काम करता है हालांकि, कोड स्वरूपण। – tommys

उत्तर

5

अनुसूचित जाति पर एक question जावा में एक बड़े पैमाने पर पुनर्रचना के बारे में भी है जो Theres। सबसे अच्छा जवाब japvaparser का उपयोग कर रहा है और वास्तविक रिफैक्टरिंग करने के लिए एक आगंतुक को कार्यान्वित कर रहा है। यह एक साधारण नाम के लिए इतना काम नहीं होना चाहिए।

+2

यह मुझे जो चाहिए, उसके बारे में लगता है, एक पटकथा पार्सर एक महान शुरुआत करेगा! – tommys

0

अपने दूसरे प्रश्न (किसी भी अधिक समस्याओं देखते हैं)

  1. मैं वैश्विक चर से बच जाएंगे उत्तर देने के लिए। encapsulation का पक्ष लें ताकि आप कार्यक्षमता को स्थानांतरित कर सकें।
  2. मैं कुछ unit tests लागू करता हूं जैसे कि आप भविष्य में परिवर्तनों को सत्यापित कर सकते हैं। फिलहाल ऐसा लगता है कि आपकी एकमात्र उपलब्ध जांच यह है कि आपकी परियोजना ठीक से संकलित होती है।

मुझे एहसास है कि इनमें से दोनों मौजूदा परियोजना में संभावित रूप से बड़े मुद्दे हैं। लेकिन यह संभावित दर्द बिंदुओं की पहचान करने और उन सभी पर काम करने के लायक है।

+0

आप बिल्कुल सही कह रहे हैं, ऊपर k इम द्वारा -card यहां पुराने विरासत कोड खेलने :) – tommys

-3

यदि आप eclispe आईडीई का उपयोग कर रहे हैं, तो आप इसे आसानी से कर सकते हैं।

कदम:

  1. चयन चर
  2. सही पर यह
  3. क्लिक refactor पर
  4. क्लिक नाम बदलने पर netbeans में क्लिक

भी आप एक ही चरणों का पालन कर सकते हैं । आईडीई संदर्भ और उपयोग पाता है और इसे सभी को प्रतिस्थापित करता है।

+0

जैसा कि मैंने मेरे सवाल में कहा गया है: वहाँ चर के साथ 2500+ वर्ग हैं उनमें और मैं उन्हें एक साथ में बदलना चाहता हूं, वास्तव में आप जो प्रस्तावित कर रहे हैं वह नहीं है :) – tommys

-1

रिफैक्टरिंग टूल इस मामले में मदद करेगा। जब आप एक चर का नाम बदलते हैं, तो यह सभी आश्रित स्थानों में इसका नाम बदल देगा, जिसमें इसे विभिन्न वर्ग फ़ाइल में भी कहा जाता है। ऐसा करने पर, यह आपके मामले में चेतावनी देगा यदि आपका नाम बदलकर परिवर्तनीय पहले से मौजूद नाम से मेल खाता है।

हालांकि हमें प्रत्येक चर के लिए इसे मैन्युअल रूप से करना है।

+0

हां, दुख की बात है और यह सिर्फ इतना काम है कि मैं यहां से बचने की कोशिश कर रहा हूं। – tommys

-1

मुझे नहीं पता कि यह काम कर सकता है या नहीं। लेकिन मुझे यह लिंक IntelliJ का उपयोग करके किसी प्रोजेक्ट में सभी अवसरों को खोजने और बदलने के लिए मिलता है।

http://www.jetbrains.com/idea/webhelp/finding-and-replacing-text-in-project.html

+0

नहीं, यह भाषा विशिष्ट समस्याओं जैसे परिवर्तनीय नाम टक्कर को संबोधित नहीं करेगा, लेकिन वैसे भी धन्यवाद। – tommys

7

के बारे में नीचे कैसे से: mass renaming of java variables

simulant

द्वारा

चर नाम पर क्लिक करें।

1: प्रेस [ऑल्ट] [पाली] [आर]

2: नया नाम दर्ज करें।

3: पुष्टि करने के लिए [Enter] दबाएं।

-> इस चर के सभी उदाहरणों का नाम बदल दिया जाएगा।

+1

thanx आदमी, यह वही था जो मैं देख रहा था .. – rummykhan

+1

ग्रहण का उपयोग करना यह सबसे अच्छा जवाब है जिसे मैं ढूंढ रहा हूं – user7344209

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