2010-09-20 13 views
5

मुझे सहायता चाहिए। इस विशिष्ट विधि के लिए। मैं इसे एक सरणी सूची लौटने की कोशिश कर रहा हूं जिसे मैंने टोकननाइज्ड किया था।किसी विधि से एक सरणीसूची को वापस कैसे करें

public ArrayList read(){ 

    BufferedReader inputStream = null; 
    try { 
    inputStream = new BufferedReader(new FileReader("processes1.txt")); 
    String l; 
    while ((l = inputStream.readLine()) != null) { 

     ArrayList<String> tokens = new ArrayList<String>(); 

     Scanner tokenize = new Scanner(l); 
     while (tokenize.hasNext()) { 
     tokens.add(tokenize.next()); 
     } 
     return tokens; 
    } 
    } catch(IOException ioe){ 
    ArrayList<String> nothing = new ArrayList<String>(); 
    nothing.add("error1"); 
    System.out.println("error"); 
    //return nothing; 
    } 
    return tokens; 
} 

मैं क्या गलत कर रहा हूं ?!

+1

बस एक टिप्पणी के रूप में, यह अच्छा अभ्यास सामान्य रूप में एक ArrayList के बजाय एक सूची वापस जाने के लिए, इस मामले में माना जाता है कि आपने कभी कार्यान्वयन को बदलने की जरूरत। – DJClayworth

उत्तर

10

बहुत अंत में आप return tokens कर रहे हैं लेकिन उस चर को कोशिश ब्लॉक के अंदर परिभाषित किया गया था, इसलिए यह इसके बाहर पहुंच योग्य नहीं है। आप जोड़ना चाहिए:

ArrayList<String> tokens = new ArrayList<String>();

अपने विधि के शीर्ष करने के लिए, बस BufferedReader के तहत।

+0

थ्रेड "अप" में अपवाद java.lang.No.SuchMethodError: मुख्य जारी रखने के लिए कोई भी कुंजी दबाएं। । । – Luron

+0

@Luron - यह एक पूरी तरह से अलग समस्या है, जिसका अर्थ है कि आपने अपनी कक्षा के भीतर 'सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] तर्क) विधि निर्दिष्ट नहीं की है। यह जेवीएम द्वारा आवश्यक है –

0

ऐरेलिस्ट को वापस करने का प्रयास करें जो इस मामले में अधिक उचित वापसी प्रकार है। जेनेरिक प्रकार एक-दूसरे से संबंधित नहीं होते हैं जिस तरह आपका उदाहरण उनका उपयोग कर रहा है।

0

यह शायद आपकी मुख्य विधि में कहीं भी एक त्रुटि है। क्या आप कक्षा को तुरंत चालू कर रहे हैं और उस पर विधि को पढ़ रहे हैं?

0

इस प्रयास करें:

public ArrayList read(){ 

      File text = new File("processes1.txt"); 

       ArrayList<String> tokens = new ArrayList<String>(); 

       Scanner tokenize; 
      try { 
       tokenize = new Scanner(text); 
       while (tokenize.hasNext()) { 

         tokens.add(tokenize.next()); 
        } 

       } 

      catch(IOException ioe){ 
       ArrayList<String> nothing = new ArrayList<String>(); 
       nothing.add("error1"); 
       System.out.println("error"); 
       //return nothing; 
       } 
      return tokens; 

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