2012-12-06 17 views
10

निम्नलिखित कोड मुझे संकलन-समय त्रुटियां देता है: अनुपलब्ध रिटर्न मान और अनुपलब्ध रिटर्न स्टेटमेंट, मैं इस Void Type के लिए कितना मूल्य लौटाऊंगा?शून्य विधि पर गुम वापसी मूल्य?

final SwingWorker<Void, Void> worker = new SwingWorker<Void, Void>() 
{ 
    @Override 
    protected Void doInBackground() throws Exception 
    { 
     // some code 
     if (something) 
     { 
      return; 
     } 
    } 
} 
+0

आपका शून्य अपरकेस में है। –

+2

वापसी शून्य का उपयोग करें। Http://stackoverflow.com/questions/643906/uses-for-the-java-void-reference-type – jontro

+0

जेनेरिक – HericDenis

उत्तर

23

Void इसे बदलने के प्रकार शून्य करने के लिए अगर आप कुछ भी वापस जाने के लिए नहीं करना चाहती नहीं void है।

शून्य एक वर्ग है, शून्य प्रकार है।

/** 
* The {@code Void} class is an uninstantiable placeholder class to hold a 
* reference to the {@code Class} object representing the Java keyword 
* void. 
* 
* @author unascribed 
* @since JDK1.1 
*/ 

आप Void चाहते हैं, तो आप अंत में return बयान जोड़ने की जरूरत है।

उदाहरण:

protected Void doInBackground() throws Exception 
    { 
     // some code 
     if (something) 
     { 
      return null; 
     } 
     return null; 
    } 
+0

धन्यवाद, यही मैंने सोचा था, लेकिन मुझे यकीन नहीं था कि यह कुछ NullPointerException या कुछ देने जा रहा था। धन्यवाद – HericDenis

+0

@ हेरिक डेनिस: मुझे नहीं लगता कि यह विफल हो जाता है। इस चर्चा को देखें http://stackoverflow.com/questions/4261666/how-do-i-wait-for-a-swingworkers-doinbackground-method – kosa

+0

पहले रिटर्न स्टेटमेंट – HericDenis

1

चेक इस। यह कैपिटल वी के साथ शून्य को वापस करने के लिए कहता है, सरल शून्य

final SwingWorker<Void, Void> worker = new SwingWorker<Void, Void>() 
      { 
       @Override 
       protected Void doInBackground() throws Exception 
       { 
       // my code here 
        return null; 
       } 
      }; 
} 
संबंधित मुद्दे