我怎样才能从一个方法返回一个 ArrayList 和一个文件数组?

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

}

方法到目前为止效果很好。


德玛西亚99
浏览 119回答 2
2回答

扬帆大鱼

只需像这样制作一个元组:Class Result {&nbsp; &nbsp;public static final ArrayList list;&nbsp; &nbsp;public static final File[] files;&nbsp; &nbsp;&nbsp; &nbsp;public Result(ArrayList list,File[] files){&nbsp; &nbsp; &nbsp; &nbsp;this.list =list;&nbsp; &nbsp; &nbsp; &nbsp;this.files = files;&nbsp; &nbsp;}&nbsp; &nbsp;}并像这样使用它: return new Result(list,files)当你需要使用list:result.list。当你需要使用 files:result.files 时。它是只读的,因为它符合 final 关键字的条件。

明月笑刀无情

您不能从一个方法返回多个对象。您可以将不同的对象放入一个新类中,然后将其返回。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java