我是java 1.8中函数式编程的新手。 我有简单的循环像下面的代码:Java 8:Map而不是简单循环
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
更改为使用箭头函数(像一个lambda)中的官能格式。
listOfFiles.map((file) = > {
System.out.println("Here is file number: " + i);
});
不幸的是,它抱怨:
Cannot invoke map((<no type> file) -> {}) on the array type File[]
为什么我得到这个错误? 我该如何解决它?
我想了解LAMBDA,所以我也没兴趣在foreach
使用'.forEach'代替'.map'。请注意,您可以使用Files.list(Paths.get(“./ src/renamer/Newaudio”)).forEach(...)'直接跳转到Stream API。 – aioobe
你的lambda中有什么'i'? –
如果您使用的是Java 8,请不要使用'File'类**。它已经过时了,应该放下休息。使用'路径'和'文件'。 – RealSkeptic