Estoy utilizando la biblioteca de Java fabric8io para trabajar con Kubernetes en Scala. Me gustaría utilizar la función waitUntilCondition que recibió java.util.Predicate como primer argumento. Sin embargo, en Scala predicado está formado en una forma diferente. Y me sale un error de compilación:
Type mismatch, expected: Predicate[Pod], actual: Nothing => Any
¿Cómo puedo definir este predicado en Scala? Aquí está el código que utilicé:
client.pods()
.inNamespace("default")
.withName("app-driver")
.waitUntilCondition(condition => condition.getStatus().getPhase().equals("Running"), 15, TimeUnit.MINUTES)
Scala 2.12 parece compilarse bien fuera de la caja en mi máquina, sin embargo, en Scala 2.11 tuve que usar Scala-java8-compat asJavaPredicate
según lo sugerido por @KrzysztofAtlasik (sólo escriba adscripción no funcionó para mí).
Si la actualización a Scala 2,12 o importar scala-java8-compat no son una opción, a continuación, tratar instanciar Predicate[Pod]
y override test
método como tal
waitUntilCondition(
new Predicate[Pod] { def test(pod: Pod): Boolean = pod.getStatus.getPhase.equals("Running") },
15,
TimeUnit.MINUTES
)