यह वास्तव में बदबूदार लगता है, और अधिक संदर्भ देखे बिना यह सुनिश्चित करना असंभव है। ऐसा करने के दो कारण हो सकते हैं, हालांकि दोनों के लिए विकल्प हैं।
सबसे पहले, यह आंशिक रूपांतरण लागू करने, या रूपांतरण विफल होने पर डिफ़ॉल्ट मानों के साथ परिणाम छोड़ने का एक संक्षिप्त तरीका है। अर्थात्, आपके पास यह हो सकता है:
public void ConvertFoo(Foo from, Foo to) {
if (can't convert) {
return;
}
...
}
Foo a;
Foo b = DefaultFoo();
ConvertFoo(a, b);
// If conversion fails, b is unchanged
बेशक, आमतौर पर यह अपवादों का उपयोग करके नियंत्रित किया जाता है। हालांकि, भले ही अपवादों को किसी भी कारण से बचने की आवश्यकता हो, लेकिन ऐसा करने का एक बेहतर तरीका है - TryParse पैटर्न एक विकल्प।
एक और कारण यह है कि यह विशुद्ध रूप से निरंतरता कारणों से हो सकता है, उदाहरण के लिए यह एक सार्वजनिक एपीआई का हिस्सा है जहां इस विधि का उपयोग सभी रूपांतरण कार्यों के लिए किया जाता है जो भी कारण (जैसे कि अन्य रूपांतरण फ़ंक्शन कई आउटपुट होते हैं)।
जावा कई आउटपुट से निपटने में महान नहीं है - इसमें कुछ भाषाओं की तरह केवल आउटपुट पैरामीटर नहीं हो सकते हैं, या अन्य की तरह कई रिटर्न मान हो सकते हैं - लेकिन फिर भी, आप रिटर्न ऑब्जेक्ट का उपयोग कर सकते हैं।
निरंतरता कारण बल्कि लंगड़ा है लेकिन दुख की बात है कि यह सबसे आम हो सकता है।
- शायद शैली आपके कार्यस्थल (या आपके कोडबेस) पर गैर-जावा पृष्ठभूमि से आती है और बदलने के लिए अनिच्छुक रही है।
- आपका कोड एक भाषा से एक बंदरगाह हो सकता है जहां यह शैली अधिक मुहावरेदार है।
- आपके संगठन को विभिन्न भाषाओं में एपीआई स्थिरता बनाए रखने की आवश्यकता हो सकती है, और यह सबसे कम-सामान्य-भाजक शैली थी (यह बहुत ही कम है लेकिन यह Google के लिए भी होता है )।
- या शायद शैली ने सुदूर अतीत में और अधिक समझ बनाई और अपने मौजूदा स्वरूप में जोड़ दिया (उदाहरण के लिए, यह TryParse पैटर्न हो सकता है लेकिन कुछ सुविचारित पूर्ववर्ती ने यह मानकर वापसी मूल्य हटा दिया कि किसी ने भी इसकी जाँच नहीं की थी)।