2013-06-29 11 views
7

इसका क्या महत्व है? कहीं मैंने पढ़ा है कि सी # में (यह == शून्य) संभव है। लेकिन जावा में क्या है? क्या, निम्न खंड कभी भी true लौटाएगा?जावा में यह "संदर्भ" संदर्भ शून्य है

if(this!=null) 
{ 
    return false; 
} 
else 
{ 
    return true; 
} 
+0

उन लोगों के लिए जो (मेरे जैसे) इस विचार को समझ सकते हैं कि यह * * शून्य हो सकता है, यह क्यू एंड ए पढ़ें - http://stackoverflow.com/questions/3143498/why-check-this-null –

+1

@ स्टीफनसी .. धन्यवाद –

उत्तर

7
if(this!=null) 

ऊपर हमेशा true को मूल्यांकन करता है, जिसका अर्थ है कि आपके if की पहली शाखा हमेशा निष्पादित हो जाएगा, और समारोह हमेशा false देता है।

+0

@StinePike निश्चित रूप से। क्या कोई अन्यथा सुझाव देता है? इस जवाब में? तुम्हारी बात? – EJP

+0

@EJP .. ओह पहले नेप ने लिखा था कि यह मान्य नहीं है .. मैंने नहीं देखा कि उसने पाठ बदल दिया .. इसलिए जैसे ही उसने संशोधित किया, मैंने उस टिप्पणी को हटा दिया है :) – stinepike

+0

@EJP: पहले सवाल पूछा गया 'this =! null' के बारे में, जिसमें मैंने कहा कि वाक्यविन्यास अमान्य था। फिर '=!' को '! = 'में बदल दिया गया, इसलिए मैंने प्रश्न से मेल खाने के लिए उत्तर संपादित किया। इसलिए भ्रम। – NPE

0

एक उदाहरण विधि या एक कन्स्ट्रक्टर के भीतर, this वर्तमान ऑब्जेक्ट का संदर्भ है। इसलिए यह null कभी नहीं होगा।

+0

कभी झूठा नहीं, आपका मतलब है। परीक्षण है! = शून्य। – EJP

+0

नहीं, उदाहरण के लिए @ ईजेपी। मैंने अभी भी इसका उल्लेख किया है। यह हमेशा झूठी वापसी करता है। –

+0

क्या 'उदाहरण'? ओपी के कोड में परीक्षण है (यह! = शून्य)। यह परीक्षण कभी झूठा नहीं हो सकता है। 'चूंकि यह एक वैध वाक्यविन्यास है' इसके साथ किसी भी तरह से करने के लिए कुछ भी नहीं है। – EJP

1

this कभी भी null नहीं हो सकता है। क्योंकि यह वस्तु के स्वयं के उदाहरण को संदर्भित करता है। और यह तब तक पहुंच जाता है जब ऑब्जेक्ट पहले से बनाया गया हो।

तो अन्य ब्लॉक पहुंच योग्य नहीं है।

1

"यह" जावा में कभी भी शून्य नहीं हो सकता

.....?

if(this!=null) 
{ 
return false; 
} 
1

this वर्तमान वस्तु जो अशक्त कभी नहीं हो सकता है।

0

"इस" कीवर्ड "है कि" वस्तु है, जो आप की बात कर रहे को संदर्भित करता है ..

class Sample 
{ 
    int age; 
    Sample(int age) 
    { 
    this.age = age; // this.age -> the variable a in the that current instance 
    } 
    public void display() 
    { 
    System.out.println(age); //age here is actually this.age 
    } 
} 
public class XYZ 
{ 
public static void main(String[] args) 
{ 
    Sample a,b; 
    a.display(); 
    b.display(); 
} 
} 
0

बस तार्किक लगता है - कि If I don't exist... कह की तरह है।

वर्तमान में कोड का नियंत्रण होने वाली चीज़ मौजूद है, अन्यथा कोड पहले स्थान पर नहीं चल रहा है।

+0

इस तरह के सामान्यीकरण मत बनाओ। कुछ भाषाओं में, 'यह' कुछ परिस्थितियों में शून्य हो सकता है। – newacct

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