Scalaの条件は、Java述語に変換します

キャシー :

私は、ScalaでKubernetesを扱うためのfabric8io Javaライブラリを使用しています。私は、最初の引数としてjava.util.Predicateを受けwaitUntilCondition機能を使用したいと思います。しかし、Scalaの述部で異なる形状に形成されています。そして私は、コンパイルエラーが表示されます。

Type mismatch, expected: Predicate[Pod], actual: Nothing => Any

どのように私はScalaで、この述語を定義することができますか?ここで私が使用したコードは次のようになります。

client.pods()
    .inNamespace("default")
    .withName("app-driver")
    .waitUntilCondition(condition => condition.getStatus().getPhase().equals("Running"), 15, TimeUnit.MINUTES)
マリオGalic:

Scalaの2.12は、しかし、Scalaの2.11に私はスカラ座-java8-compatのを使用していた、私のマシン上のボックスの外に罰金をコンパイルしているようだasJavaPredicate@KrzysztofAtlasikにより示唆されるように(ちょうど帰属が私のため動作しませんでし入力します)。

Scalaの2.12へのアップグレードまたはスカラ- java8-compatのをインポートするにはオプションでない場合は、インスタンス化しようとPredicate[Pod]してオーバーライドtestそうのような方法

waitUntilCondition(
  new Predicate[Pod] { def test(pod: Pod): Boolean = pod.getStatus.getPhase.equals("Running") }, 
  15, 
  TimeUnit.MINUTES
)

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=224134&siteId=1