FunctionConverters

This object provides extension methods that convert between Scala and Java function types.

This object provides extension methods that convert between Scala and Java function types.

When writing Java code, use the explicit conversion methods defined in javaapi.FunctionConverters instead.

Using the .asJava extension method on a Scala function produces the most specific possible Java function type:

scala> import scala.jdk.FunctionConverters._
scala> val f = (x: Int) => x + 1

scala> val jf1 = f.asJava
jf1: java.util.function.IntUnaryOperator = ...

More generic Java function types can be created using the corresponding asJavaXYZ extension method:

scala> val jf2 = f.asJavaFunction
jf2: java.util.function.Function[Int,Int] = ...

scala> val jf3 = f.asJavaUnaryOperator
jf3: java.util.function.UnaryOperator[Int] = ...

Converting a Java function to Scala is done using the asScala extension method:

scala> List(1,2,3).map(jf2.asScala)
res1: List[Int] = List(2, 3, 4)

Implicits

Inherited implicits

implicit def enrichAsJavaBiConsumer[T, U](sf: (T, U) => Unit): RichFunction2AsBiConsumer[T, U]
implicit def enrichAsJavaBiFunction[T, U, R](sf: (T, U) => R): RichFunction2AsBiFunction[T, U, R]
implicit def enrichAsJavaBinaryOperator[T, A1, A2](sf: (T, A1) => A2)(evA1: A1 =:= T, evA2: A2 =:= T): RichFunction2AsBinaryOperator[T]
implicit def enrichAsJavaDoubleFunction[A0, R](sf: A0 => R)(evA0: A0 =:= Double): RichFunction1AsDoubleFunction[R]
implicit def enrichAsJavaFunction[T, R](sf: T => R): RichFunction1AsFunction[T, R]
implicit def enrichAsJavaIntBinaryOperator[A0, A1](sf: (A0, A1) => Int)(evA0: A0 =:= Int, evA1: A1 =:= Int): RichFunction2AsIntBinaryOperator
implicit def enrichAsJavaIntFunction[A0, R](sf: A0 => R)(evA0: A0 =:= Int): RichFunction1AsIntFunction[R]
implicit def enrichAsJavaLongBinaryOperator[A0, A1](sf: (A0, A1) => Long)(evA0: A0 =:= Long, evA1: A1 =:= Long): RichFunction2AsLongBinaryOperator
implicit def enrichAsJavaLongFunction[A0, R](sf: A0 => R)(evA0: A0 =:= Long): RichFunction1AsLongFunction[R]
implicit def enrichAsJavaObjIntConsumer[T, A1](sf: (T, A1) => Unit)(evA1: A1 =:= Int): RichFunction2AsObjIntConsumer[T]
implicit def enrichAsJavaObjLongConsumer[T, A1](sf: (T, A1) => Unit)(evA1: A1 =:= Long): RichFunction2AsObjLongConsumer[T]
implicit def enrichAsJavaUnaryOperator[T, A1](sf: T => A1)(evA1: A1 =:= T): RichFunction1AsUnaryOperator[T]
implicit def enrichAsScalaFromBiFunction[T, U, R](jf: BiFunction[T, U, R]): RichBiFunctionAsFunction2[T, U, R]