Я новичок в функциональном программировании в java 1.8. У меня есть простой цикл, как код ниже:Java 8: Карта вместо простой петли
File folder = new File("./src/renamer/Newaudio");
File[] listOfFiles = folder.listFiles();
for (int i = 0; i < listOfFiles.length; i++) {
System.out.println("Here is file number: " + i);
}
Я собираюсь изменить верхний for loop
к функциональной форме, используя функцию стрелки (например, лямбда).
listOfFiles.map((file) = > {
System.out.println("Here is file number: " + i);
});
К сожалению, он жалуется:
Cannot invoke map((<no type> file) -> {}) on the array type File[]
Почему я получаю эту ошибку? как я могу разрешить это?
Я хотел бы узнать о Lambda, поэтому я не заинтересован в Еогеасп
Используйте '.forEach' вместо' .map'. Обратите внимание, что вы можете использовать 'Files.list (Paths.get (" ./ src/renamer/Newaudio ")). ForEach (...)' для прямого перехода в Stream API. – aioobe
Что такое 'i' в вашей лямбде? –
Если вы используете Java 8, ** Не используйте класс 'File' **. Он устарел и должен быть положен на отдых. Используйте «Путь» и «Файлы». – RealSkeptic