2014-01-21 143 views
0

開始之前,讓我只說我是Java的初學者 - 對我來說太簡單了。Java - 缺少返回語句

我收到一個錯誤 - 「缺少return語句」 - 第26行,在這種情況下,它是代碼中的最後一個大括號。我知道,它的字面意思是,我要在某處方法返回(你可以把它的功能?),但我不知道在哪裏 - 也不知道爲什麼..下面的代碼:

public String[] OpenFile() throws IOException { 

    Map<String, Double> map = new HashMap(); 

    FileReader fr = new FileReader("money.txt"); 
    BufferedReader br = new BufferedReader(fr); 


    try{ 
     while (br.ready()){ 
      String str = br.readLine(); 
      String[] list = str.split(" "); 
      System.out.println(list);    
     } 
    } catch (IOException e){ 
     System.err.println("Error - IOException!"); 
    } 
} 

感謝您的任何幫幫我。

+17

你得到錯誤「缺少return語句」因爲缺少回報聲明..真的。 – Maroun

+1

你應該在發佈問題之前得到一些教程! – Saqib

+1

使其無效而不是String [](函數名稱前)或僅返回列表 – AngryDuck

回答

4

如果你只是想打印的文件,你現在正在做正確的返回類型更改爲void如下:

public void OpenFile() throws IOException { 

否則,因爲你是剛剛開放,並在一個文本文件中讀取,你可能需要另一個String變量,您將該文件的行追加並返回,而不是String[]。也許是這樣的:

public String openFile(String fileName) throws IOException { 

    String output = ""; 
    FileReader fr = new FileReader(fileName); 
    BufferedReader br = new BufferedReader(fr); 

    try { 
     while (br.ready()) { 
      String line = br.readLine(); 
      output += line + "\n"; 
     } 
    } catch (IOException e) { 
     System.err.println("Error - IOException!"); 
    } 
    return output; 
} 
+1

啊,根本沒有注意到 - 我的愚蠢的錯誤。謝謝您的幫助! – user2843488

1
public String[] OpenFile() // expected return type is String array 

但是你沒回,從你的方法。

如果你不想返回你的方法的返回類型更改爲void(不歸)

public void OpenFile() throws IOException { 

} 

或者,如果你想返回預期使用

public String[] OpenFile() throws IOException { 

String[] arr=new String[5]; 

// implementation 

return arr; 

}

3

首先請注意,這不是一個真正的學習任何編程語言的初學者論壇。你會發現很難得到這裏回答的一個非常基本的問題,沒有大約20人指着你朝着Google的方向(包括我自己)

這就是說請查找java tutorials,初學者指南或者簡單地the docs。答案几乎每次都會直接跳到你的臉上,因爲java編程語言的材料太多了。

Stackoverflow更多的是一個更抽象的問題,從來沒有見過的問題和棘手的問題對於專家來說 - 所有的事情都可能迎合一般受衆,並幫助許多人,而不僅僅是你自己。誠然,你提出你的問題很好地和格式化的很好,所以榮譽給你,歡迎到現場

至於你有以下幾種選擇這個非常具體的問題:

聲明返回類型爲void

public void openFile() throws Exception { 

} 

返回初步null,直到你知道什麼返回

public String[] openFile() throws Exception { 
    return null; 
} 

(但要確保調用實體知道什麼會回來;))

返回一些有效的數據到調用該方法的實體

public String[] openFile() throws Exception { 
    String[] myArray = new String[5]; 
    return myArray; 
}