2012-04-27 64 views
0

假設我有一個對象中運行像這樣這樣的:正確初始化對象中的數組列表?

static class fileHandler { 
    File fileToHandle; 
    ArrayList fileDetails; 

    fileHandler(File fileIn) { 
     fileToHandle = fileIn; 
    } 


    public void fileHandling() { 

     try { 
      Scanner reader = new Scanner(fileToHandle); 
      reader.useDelimiter(","); 
      while(reader.hasNext()) { 
       String s = reader.next(); 
       fileDetails.add(s); 
      } 
     } catch (FileNotFoundException e) { System.err.println("File Not Found!"); } 
    } 
} 

我如何才能讓「fileDetails」能我的方法裏面工作?

+0

只是實例fileDetails類型的新對象的方法內。 'fileDetails =新的ArrayList ();' – noMAD 2012-04-27 05:14:55

+0

此外,它是很好的注意,除非你有從具體類指'fileDetails'一個具體的理由,那麼它的好得多指'List'代替。使您的程序更加靈活。 – Kirstein 2012-04-27 05:30:45

回答

2

在構造函數

fileHandler(File fileIn) { 
    fileToHandle = fileIn; 
    fileDetails = new ArrayList(); 
} 

或向右定義初始化:

ArrayList fileDetails = new ArrayList(); 

通過你應該使用一個通用的ArrayList方式:

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

和類名應該開始用大寫字母

class FileHandler { 
+0

也聲明你的類字段'final',並使用getters來訪問它們。 – 2012-04-27 05:59:49

+0

@ortang probaby換貨'private'代替'final' – Kirstein 2012-04-27 06:10:29

+0

@Kirstein的我彪'私人final'你是對的;) – 2012-04-27 06:23:34