2012-01-20 15 views
6

मेरे पास एक दिलचस्प सवाल है। मैं समझता हूँ कि निम्नलिखित सी # कोड मानकों में इनपुट शून्य मान के लिए उपयोगकर्ताओं को सक्षम:निम्नलिखित सी # कोड के लिए जावा समतुल्य क्या है?

public DateTime? date (DateTime dt) {} 

बराबर जब जावा में कोडिंग क्या है?

+0

मुझे नहीं लगता कि एक है। –

+0

यह विधि एक शून्य दिनांक दिनांक लौटाती है, लेकिन इसका तर्क शून्य नहीं है। –

+1

'C#' उदाहरण एक निरर्थक डेटटाइम को वापस करने की अनुमति देता है। पैरामीटर के रूप में पारित दिनांक समय शून्य नहीं हो सकता है। –

उत्तर

5

यदि मुझे सही याद है कि जावा में प्रत्येक ऑब्जेक्ट शून्य हो सकता है। आदिम प्रकार (int, double, float, char आदि ...) शून्य नहीं हो सकता है। उनके साथ शून्य का उपयोग करने के लिए आपको अपने ऑब्जेक्ट समकक्ष (Integer, Double, Float...)

तिथियों के बारे में, java.util.Date एक ऑब्जेक्ट है, इसलिए यह शून्य हो सकता है। कैलेंडर & ग्रेगोरियन कैलेंडर के लिए भी जाता है।

public Date date(Date dt) throws NullPointerException { 
    if (dt == null) throw new NullPointerException(); 
    ... 
} 

सी # का उपयोग कर सकते हैं:

बराबर कोड की तरह कुछ हो जाएगा? आदिम प्रकारों में शून्य वैल की अनुमति देने के लिए (उदा। ऑब्जेक्ट नल संदर्भ त्रुटियों को लागू करने के लिए)। मुझे समझ में नहीं आता कि यह चीज़ आपको परेशान क्यों करती है। यदि आपको उदाहरण के लिए जावा में एक शून्य पूर्णांक पैरामीटर की आवश्यकता है, तो आपको बस java.lang.Integer का उपयोग करना होगा और आदिम int प्रकार का उपयोग नहीं करना होगा।

+0

यह प्रश्न वास्तव में सी # और जावा सिंटैक्स के साथ अपना ज्ञान अपडेट करने के बारे में है और बेकार पैरामीटर सेट करने के लिए बस सर्वोत्तम अभ्यास को समझने के लिए। आपके उत्तर के लिए बहुत धन्यवाद। – AWb

+0

सी # और जावा कुछ हद तक समान हैं लेकिन फिर भी वे दो अलग-अलग भाषाएं हैं। जावा में कुछ चीजें हैं जो सी # और उपाध्यक्ष में कोई समकक्ष नहीं है। मेरा सुझाव वाक्यविन्यास विशिष्ट मुद्दों की तुलना नहीं करना है, बल्कि कार्यक्षमता पर उनकी तुलना करना है।आपका दिन शुभ हो। – BigMike

+0

वास्तव में NullPointerException को फेंकना एक रनटाइम त्रुटि है जबकि C# वाक्यविन्यास संकलन त्रुटि का कारण बनता है यदि आप शून्य को पार करने का प्रयास करते हैं। बल्कि अलग-अलग चीजें। –

0

जावा उपयोगकर्ता परिभाषित मान प्रकारों का समर्थन नहीं करता है (उदाहरण के लिए जो शून्य नहीं हो सकते हैं)। इस संबंध में, जावा डेटटाइम ऑब्जेक्ट पहले से ही शून्य को असाइन करने की अनुमति देने के आधार पर निरर्थक का समर्थन करता है।

अन्य प्रकारों के लिए, इस तरह के int और double के रूप में, आप बॉक्स्ड संस्करणों Integer और Double जो अशक्त आवंटित करने के लिए अनुमति दी जाती है उपयोग करके एक ही प्रभाव को प्राप्त कर सकते हैं।

1

चूंकि जावा में एक तिथि एक कक्षा है, इसका संदर्भ पहले से ही शून्य हो सकता है। दूसरे शब्दों में;

public Date date(Date dt) { } 

... जावा का संस्करण है।

ध्यान दें कि पैरामीटर जावा में भी शून्य हो सकता है, जो यह सी # संस्करण में नहीं हो सकता है।

+0

नाप, बराबर होने के लिए आपको डीटी पैरामीटर की जांच करनी होगी और एक नलपोइंटर अपवाद फेंकना होगा यदि दिया गया मान शून्य है (बेशक मैं मजाक कर रहा हूं: पी) – BigMike

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