java - 如何从一种方法返回 ArrayList 和文件数组?

标签 java file methods return

我想用一种方法返回一个 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/

相关文章:

java - 如何识别 Java 字节码中的覆盖方法?

c# - 使用自定义属性跳过body方法

java - 无法通过 SSH 隧道远程调试 JVM

java - 窗口、文档与 $wnd、$doc

asp.net - 如何更新 asp.net 网站(只是更改了文件)

java - 在 Java 中从文件加载纹理时出错

android - 其他 Activity 类中的方法

java - RxJava file.createNewFile() 总是返回 TRUE

java - 通过gradle构建项目时JVM空间耗尽

c# - 检查文件/目录是否存在 : is there a better way?