Рассмотрим этот фрагмент кода:
private static ArrayList<Level> levels = new ArrayList<>();
static {
try (Stream<Path> paths = Files.walk(Paths.get("levels"))) {
paths
.filter(Files::isRegularFile)
.forEach(levels.add(new Level(file))); //CAN'T DO!!
} catch (IOException e) {
e.printStackTrace();
}
}
Я думаю, что код в значительной степени говорит о том, что я пытаюсь сделать. Я где-то нашел этот фрагмент кода и попытался применить его для создания объектов Level из папки с файлами, такими как level1.txt, level2.txt и т. Д. c. Класс Level принимает File в качестве аргумента.
Метод forEach выдает SyntaxError.
- Что такое "::" в методе фильтра?
- Почему путь переносится новой строкой и двумя методами? Никогда раньше такого не видел.
- Как я могу заставить эту работу работать правильно?