2012-11-14 22 views
5

कोडेनार एक ढांचा है जो दोष, बुरे प्रथाओं, असंगतताओं, शैली के मुद्दों और अधिक के लिए ग्रोवी कोड का विश्लेषण करता है। MisorderedStaticImports Rule:स्टेटिक आयात विवरण जो गैर-भौतिक आयात के बाद कभी नहीं होना चाहिए

स्थिर आयात बयान जो कभी नहीं nonstatic आयात के बाद किया जाना चाहिए के लिए चेकों

इस नियम के लिए एक कारण है।

उल्लंघन के उदाहरण:

import my.something.* 
import static foo.bar.* 

public class MyClass{} 

मैं प्रेरणा या इस नियम के लिए निहितार्थ समझ में नहीं आता।

+5

यह केवल सम्मेलन है। जहां तक ​​जावा का संबंध है, यह अप्रासंगिक है। –

+2

इंटेलिजे के फॉर्मेटर डिफ़ॉल्ट रूप से सामान्य आयात के बाद स्थैतिक आयात करते हैं। –

+1

@ पीटर लेवरी हाँ आइडिया करता है और यह समझ में आता है![उदाहरण] पर देखें (http://stackoverflow.com/questions/40440653/why-do-i-get- अलग-compilation-result-depending-on-import-sequence-order) –

उत्तर

8

मार्को टॉपोलनिक कहते हैं, आयात का आदेश किसी कार्यक्रम के अर्थ से प्रासंगिक नहीं है।

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

इसलिए, यह सिर्फ एक स्टाइलिस्ट सम्मेलन है। (वास्तव में, यदि आप नियम को देखो, तो यह और भी आप पहली बार स्थिर आयात डालने का विकल्प देता है!)


अद्यतन

@Eugene Stepanenkov इस क्यू बताते & एक

कि संस्करणों में ओ एक अस्पष्ट बग था जावा 8 से पहले ओरेकल जावा कंपाइलर एफ। यह (अंत में) स्वीकार किया गया और तय किया गया था।

मुझे लगता है कि इसका मतलब है कि कोडेनार चेतावनी के लिए प्रेरणा का हिस्सा रहा है। हालांकि, यह बात है: यदि आप बग से प्रभावित जावा कंपाइलर का उपयोग कर रहे थे, तो "गलत" ऑर्डर में आयात के साथ कोड बिल्कुल संकलित नहीं होगा ... कोडेनार चेतावनी moot को प्रस्तुत करना।

+0

[प्रश्न] देखें (http://stackoverflow.com/questions/40440653/why-do-i-get- अलग-compilation-result-depending-on-import-sequence-order) –

+0

अच्छी पकड़। मैं पहले कभी नहीं आया था। –

0

एक शैली मुद्दा। केवल एक, दो स्थैतिक आयात होंगे, लेकिन जिनके पास फ़ंक्शन नामों को शुरू करने जैसी समझदारी पर बहुत अधिक प्रभाव पड़ता है। इसलिए उन्हें शीर्ष पर (पढ़ने के लिए) अच्छी शैली माना जा सकता है। आईडीईई ढहने "[+]" समर्थन को भी ध्यान में रखा जा सकता है।

मुझे लगता है कि वे स्थिर आयात को दूसरे से अलग करना चाहते थे।

0

आयात (स्थिर और गैर स्थैतिक) का आदेश चुनने से example में इस तरह के एज केस में समस्या उत्पन्न हो सकती है।