我想用一种方法返回一个 ArrayList 和一个文件数组。有关更多背景信息(不需要帮助我),您可以阅读其余部分。
我正在为推箱子游戏编写我的版本。为此,我必须获得一个包含所有级别路径的列表(在我的例子中是 ArrayList),以便我可以获得信息,并且我还需要文件数组,因为我在以前的版本中使用过,并且需要几个小时才能更改它。目前该方法的输入是“level”。这是包含 .xsd 文件的目录。r
我无法改变我想要返回的东西。
public static ArrayList<SokobanLevel> loadLevels(String dirPath) throws SokobanException {
Path dir =
FileSystems.getDefault().getPath(dirPath).toAbsolutePath();
File[] fileFolder = dir.toFile().listFiles();
ArrayList<SokobanLevel> allLevel = new ArrayList<SokobanLevel>();
for(int i = 0; i < fileFolder.length; i++) {
SokobanLevel sl = new
SokobanLevel(fileFolder[i].getAbsolutePath());
sl.setId(i);
allLevel.add(sl);
}
//would like to also return File[] fileFolder
return allLevel;
}
该方法到目前为止效果很好。
最佳答案
只需创建一个像这样的元组:
Class Result {
public static final ArrayList list;
public static final File[] files;
public Result(ArrayList list,File[] files){
this.list =list;
this.files = files;
}
}
像这样使用它:
返回新结果(列表,文件)
当需要使用列表时:result.list。
当你需要使用文件时:result.files。
<小时/>它是只读的,因为它由 Final 关键字限定。
关于java - 如何从一种方法返回 ArrayList 和文件数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56913764/