間違った構文の問題を再帰的に削除ScalaのファイルforEachのは期待:消費者[_>:パス]実際:(パス)=>ブール
Files.walk(path, FileVisitOption.FOLLOW_LINKS)
.sorted(Comparator.reverseOrder())
.forEach(Files.deleteIfExists)
間違った構文の問題を再帰的に削除ScalaのファイルforEachのは期待:消費者[_>:パス]実際:(パス)=>ブール
Files.walk(path, FileVisitOption.FOLLOW_LINKS)
.sorted(Comparator.reverseOrder())
.forEach(Files.deleteIfExists)
問題はあなたが合格しようとしているということであるにスカラスタイルの関数をjava-8スタイルの関数を期待するメソッドに変換します。そこには変換を行うことができるいくつかのライブラリがあります(複雑ではありません)。おそらく最も単純なのは、Javaコレクションをスカラスタイルの関数を期待するforeach
メソッドを持つスカラコレクションに変換することです引数として:Scalaの2.12で
import scala.collection.JavaConverters._
Files.walk(path, FileVisitOption.FOLLOW_LINKS)
.sorted(Comparator.reverseOrder())
.iterator().asScala
.foreach(Files.deleteIfExists)
私は、これは動作するはず期待:
...forEach(Files.deleteIfExists(_: Path))
予想タイプがConsumer[_ >: Path]
、ないConsumer[Path]
あるので、それはスカラ座にあるであろうと、あなたが引数の型を指定する必要がある理由は、 。
それが動作しない場合は(現時点でテストすることはできません)、Scalaの2.12前
val deleteIfExists: Consumer[Path] = Files.deleteIfExists(_)
...forEach(deleteIfExists)
を試し、ジョーKの答えは正しいものです。