我是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