जावा में सशर्त आयात करने के लिए कैसे की तरह हम सी इस में ifdefs
है मैं क्या हासिल करनाजावा सशर्त आयात
ifdef TEST
import com.google.mystubs.swing;
elif
import javax.swing.*;
endif
जावा में सशर्त आयात करने के लिए कैसे की तरह हम सी इस में ifdefs
है मैं क्या हासिल करनाजावा सशर्त आयात
ifdef TEST
import com.google.mystubs.swing;
elif
import javax.swing.*;
endif
आप जावा
साथ सशर्त आयात की जरूरत नहीं हैलेकिन आप का इरादा है
if(useSql){
java.sql.Date date = new java.sql.Date()
}else{
java.util.Date date = new java.util.Date()
}
: सशर्त उदाहरण के लिए पूरी तरह से योग्य नाम
का उपयोग कर एक ही नाम के साथ विभिन्न वर्गों इस्तेमाल कर सकते हैं
यह केवल वास्तव में लाभ होगा यदि दोनों तिथियों ने एक आम इंटरफेस लागू किया। – gdw2
कहें कि क्या दोनों पुस्तकालय बाहरी जार थे। क्या कंपाइलर में उन दोनों JAR को संकलित कोड में शामिल किया जाएगा यदि 'useSql'' स्थिर अंतिम 'था? –
हां। यह। हालांकि आपको अभी भी रनटाइम के दौरान इसे प्रदान करने की आवश्यकता है –
हमारे पास जावा
जावा में सशर्त आयात नहीं है सशर्त import
का समर्थन नहीं करता है।
जावा में इसके लिए कोई समर्थन नहीं है।
ध्यान रखें कि #IFDEF सी ++ पर प्री-प्रोसेसर चरण में किया जाता है - इसके लिए जावा में कोई समर्थन नहीं।
जेडीके 1.5 में दिन एनोटेशन पेश किए जाने से पहले, आप एनोटेशन प्रोसेसर की तरह कुछ और कोशिश कर सकते हैं।
इसके अलावा, आप संकलन समय के दौरान संसाधित होने के लिए एनोटेशन का उपयोग कर सकते हैं।
This ब्लॉग आपको कुछ जानकारी प्रदान करता है
जो आप करने का प्रयास कर रहे हैं वह एक वैध विचार है, लेकिन आपको इसके बजाय मोक्स का उपयोग करना चाहिए। Mockito इसके लिए एक महान पुस्तकालय है।
प्रतिमान थोड़ा अलग है, लेकिन आपको एक मॉकिंग लाइब्रेरी के साथ यूनिट परीक्षण में देखना चाहिए और इसकी समझ प्राप्त करना चाहिए, जो आपको बेहतर तरीके से (मेरी राय में) तरीके से करने की अनुमति देगा ।
Java Comment Preprocessor परिणाम दस्तावेज़ में उपसर्ग और पोस्टफ़िक्स वर्गों का समर्थन करता है और यह बहुत ही वर्ग आयात खंड बनाने के लिए उपयोगी है, तुम भी
//#ifdef FLAG
//+prefix
import some.class.Clazz;
//-prefix
Clazz.call();
//#endif
आप एक पारंपरिक अगर बयान और इस्तेमाल कर सकते हैं अपने वर्ग के बीच में आयात स्ट्रिंग जगह कर सकते हैं तो Class.forName("example.ExampleClass")
आयात करने के बजाय यह Class
ऑब्जेक्ट वापस करेगा जो आप Class.newInstance()
पर आक्रमण कर सकते हैं। यह आपको उन निर्भरताओं के लिए संकलन समय त्रुटियों से बचने की अनुमति देगा जो अस्तित्व में नहीं हो सकते हैं और साथ ही ऐसा कुछ भी कर सकते हैं जो सशर्त आयात के समान है।
संभावित सबसेट: http://stackoverflow.com/questions/4526113/java-conditional-compilation-how-to-prevent-code-chunks-to-be-compiled –