IntelliJ में "एक्सेस पैकेज-प्राइवेट कैसे हो सकता है" संदेश को निष्क्रिय करना है?


79

एक एपीआई का विकास करना, जावा कक्षाओं में चेतावनी संदेश "एक्सेस पैकेज-पैकेज हो सकता है" वास्तव में कष्टप्रद हो सकता है।

मैंने पहले से ही इस संदेश को अक्षम करने का एक तरीका खोजने के लिए सेटिंग्स के माध्यम से कुछ समय बिताया है, लेकिन बिना किसी निष्कर्ष के। किसी भी विचार कैसे संदेश को निष्क्रिय करने के लिए?


6
मेरा कह रहा है कि एक विधि पैकेज-निजी हो सकती है, लेकिन जब मैं ऐसा करता हूं, तो मेरे कोड के अन्य स्थान जहां इसे बुलाया जा रहा है, वह काम नहीं करेगा (जैसा कि आप उम्मीद करेंगे), इसलिए यह मुझे बता रहा है कि यह पैकेज हो सकता है -प्यार? यह नहीं हो सकता है अगर मैं इसे कहीं और उपयोग कर रहा हूं। यहां आईडीई से बहुत उपयोगी सुझाव नहीं है।
मार्क फियरबी

जवाबों:


54

निरीक्षण नियम है "घोषणा की पहुंच कमजोर हो सकती है" और दो विकल्प हैं जिन्हें अक्षम किया जा सकता है "सुझाव पैकेज-निजी दृश्यता अन्य"


68

Settings → Editor → Inspectionsतत्कालीन Java → Declaration redundancy → Declaration access can be weakerशासन पर जाएं ।
यहां आप इसे या तो बिल्कुल अक्षम कर सकते हैं या सही फलक पर सुझाव विकल्पों का चयन कर सकते हैं:

यहाँ छवि विवरण दर्ज करें


62

केस के आधार पर किसी केस को निष्क्रिय करने के लिए, उपयोग करें

@SuppressWarnings("WeakerAccess")

6
यह सबसे अच्छा जवाब है। ऐसा करने से आप वास्तव में अपने इरादे का दस्तावेजीकरण करते हैं, बजाय आपके लिए आईडीई कंबल के सब कुछ कवर करने के बजाय
रथ

3
मैंने कहा है कि एक विधि घोषित करना, जैसा कि जनता ने पहले से ही आपके इरादे को प्रमाणित किया है। लेकिन मुझे बात समझ में आ गई। यदि आप इसे दो बार कहते हैं, तो वे विश्वास करना शुरू कर देंगे कि आप वास्तव में इसका मतलब है।
माइकल के

1
यह वास्तव में सब कुछ निजी बनाने के लिए एक पुराना विरोधी पैटर्न है। टीडीडी यूजर्स इसे किसी से बेहतर समझेंगे। अनिवार्य रूप से, जब तक आप वितरण के लिए कोड नहीं लिख रहे हैं और आपको उपयोगकर्ताओं से आंतरिक की रक्षा करने की आवश्यकता है, सब कुछ निजी बना रहा है, परीक्षण करना और अधिक कठिन बना देता है। इस बात को ध्यान में रखते हुए, यह आईडीई को व्यापक बनाने के लिए इतना बुरा विचार नहीं है।
बजे ब्रिल पप्पिन

फिर भी, मुझे पूरा यकीन है कि आप अपने लिए पहुंच बदलने के लिए कुछ ऑबफ्यूज़र्स को कॉन्फ़िगर कर सकते हैं।
पृथ्वीराशि

@BrillPappin क्या आपके पास कोई स्रोत है जो मैं इस विचार के बारे में पढ़ सकता हूं कि सब कुछ सबसे कमजोर पहुंच पर संभव है ("सब कुछ निजी बनाएं", जो मुझे यकीन है कि किसी ने कभी वकालत नहीं की है) एक विरोधी पैटर्न है? और रीफैक्टरिंग को और अधिक कठिन बना देता है? मेरे विचार में सब कुछ सार्वजनिक करने से धीरे-धीरे कोड को स्पेगेटी के कटोरे में बदल दिया जाएगा जहां सब कुछ सब कुछ पर निर्भर करता है।
शांतिबेलर्स

8

कर्सर को ले जाएँ public, दबाएँ Alt+ Enterऔर विकल्पों में से एक चुनें:
यहाँ छवि विवरण दर्ज करें


2
दिलचस्प है कि मेरे पास "मेक-पैकेज-प्राइवेट 'का चयन करते समय" निष्क्रिय निरीक्षण "विकल्प नहीं है। (संभवतः मैंने दूसरी सेटिंग अक्षम कर दी है ताकि मुझे वह विकल्प दिखाई न दे।) मुझे यकीन है कि आपका उत्तर काम कर रहा है। धन्यवाद। mboss 'समाधान ने मेरे लिए चाल चली।
थॉमस जुबेरुहलर

मेरे लिए काम किया :-)
mrek

3
क्या यह सभी "डिक्लेरेशन एक्सेस कमजोर हो सकता है" सुझावों को निष्क्रिय नहीं करेगा , न कि केवल पैकेज-प्राइवेट सुझाव देने वाले?
जो व्हाइट

4

एक अन्य समाधान जो अब तक उल्लेख नहीं किया गया है: यदि आपके पास एक विधि है जिसे सार्वजनिक घोषित किया गया है, और आईडीई आपको बता रहा है कि पैकेज के बाहर से विधि का कोई संदर्भ नहीं है, तो शायद आपको एक परीक्षण मामला जोड़ना होगा जो उस पद्धति को बाहर से बुलाता है। पैकेज। दूसरे शब्दों में, एक सार्वजनिक विधि के लिए परीक्षण मामले की अनुपस्थिति को संकेत के रूप में चेतावनी का इलाज करें।


चूंकि यह आम है कि परीक्षण वर्ग परीक्षण के तहत कक्षा के समान पैकेज में है, इसलिए यह वास्तव में कुछ भी नहीं बदलेगा।
स्टीफन डी।

1
@Stefan: आमतौर पर यूनिट परीक्षण एक ही पैकेज में बैठते हैं, लेकिन एक सार्वजनिक एपीआई को उदाहरण के एकीकरण या स्वीकृति परीक्षणों में परीक्षण किया जाना चाहिए और एक सच्चे ग्राहक के रूप में सार्वजनिक एपीआई का उपयोग करना चाहिए। बाहर से, मुझे लगता है।
जैज ६४
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.