我收到错误 - “缺少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!");
}
}
答案 0 :(得分: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 :(得分:3)
首先请注意,这不是一个学习任何编程语言的初学者论坛。你会发现很难在这里得到一个非常基本的问题,大约有20个人指向你的方向(包括我自己)
话虽如此,请查找java tutorials,初学者指南或简称the docs。答案几乎每次都会让你直截了当,因为java编程语言中有这么多材料
Stackoverflow更像是一个问题和答案网站,提供更抽象的问题,前所未见的问题和专家的棘手问题 - 所有可能迎合一般受众和帮助的事情许多人,而不仅仅是你自己。不可否认,你提出的问题非常好,格式也很好,所以对你赞不绝口,欢迎来到网站
至于这个非常具体的问题,您有以下选择:
声明无效返回类型
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;
}
答案 2 :(得分: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;
}