我正试图从函数返回一个2D矩阵.Eclipse抱怨函数的返回类型
import java.io.*;
import java.util.Arrays;
import java.util.List;
import com.opencsv.CSVReader;
public class myClass {
private static String inFile = "myfile.csv";
private String[][] readCsv() {
File file1 = new File(inFile);
if (file1.exists()) {
System.out.println("File " + inFile + " exists. length : " + inFile.length());
} else {
System.out.println("File " + inFile + " does not exist!");
}
try {
// Read all
CSVReader csvReader = new CSVReader(new FileReader(new File(inFile)));
List<String[]> list = csvReader.readAll();
// Convert to 2D array
String[][] dataArr = new String[list.size()][];
dataArr = list.toArray(dataArr);
return dataArr;
} catch (Exception ex) {
// Do something with mistake or ignore
ex.printStackTrace();
}
}
public static void main(String[] args) {
myClass mc = new myClass();
String[][] csvContents = mc.readCsv();
for (int k = 0; k < 10; k++) {
System.out.println(Arrays.toString(csvContents[k]));
}
}
}
Run Code Online (Sandbox Code Playgroud)
日食错误告诉我的是This method must return a result of type String[][].返回的值dataArr是类型String[][]&readCsv指示返回的方法String[][].
我无法弄清楚错误在哪里.
如果try块抛出异常,你将不得不返回一些东西:
public String[][] myMethod() {
String[][] arr = new String[1][];
try {
arr = methodThatCanThrowException(); // If this method throws an exception
return arr; // this return will not execute
} catch (Exception ignored) {}
return arr; // Return something after the try/catch block
}
Run Code Online (Sandbox Code Playgroud)
你如何处理这个取决于你,你可以返回一些默认值或者也许null.
| 归档时间: |
|
| 查看次数: |
106 次 |
| 最近记录: |