scala / 3.1 / scala / jdk / functionconverters$.html

Object scala.jdk.FunctionConverters

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)

Inherited implicits

Source@inline
implicit def enrichAsJavaBiConsumer[T, U](sf: (T, U) => Unit): RichFunction2AsBiConsumer[T, U]

Source@inline
implicit def enrichAsJavaBiFunction[T, U, R](sf: (T, U) => R): RichFunction2AsBiFunction[T, U, R]

Source@inline
implicit def enrichAsJavaBiPredicate[T, U](sf: (T, U) => Boolean): RichFunction2AsBiPredicate[T, U]

Source@inline
implicit def enrichAsJavaBinaryOperator[T, A1, A2](sf: (T, A1) => A2)(implicit evA1: A1 =:= T, evA2: A2 =:= T): RichFunction2AsBinaryOperator[T]

Source@inline

Source@inline
implicit def enrichAsJavaConsumer[T](sf: T => Unit): RichFunction1AsConsumer[T]

Source@inline
implicit def enrichAsJavaDoubleBinaryOperator[A0, A1](sf: (A0, A1) => Double)(implicit evA0: A0 =:= Double, evA1: A1 =:= Double): RichFunction2AsDoubleBinaryOperator

Source@inline
implicit def enrichAsJavaDoubleConsumer[A0](sf: A0 => Unit)(implicit evA0: A0 =:= Double): RichFunction1AsDoubleConsumer

Source@inline
implicit def enrichAsJavaDoubleFunction[A0, R](sf: A0 => R)(implicit evA0: A0 =:= Double): RichFunction1AsDoubleFunction[R]

Source@inline
implicit def enrichAsJavaDoublePredicate[A0](sf: A0 => Boolean)(implicit evA0: A0 =:= Double): RichFunction1AsDoublePredicate

Source@inline

Source@inline
implicit def enrichAsJavaDoubleToIntFunction[A0](sf: A0 => Int)(implicit evA0: A0 =:= Double): RichFunction1AsDoubleToIntFunction

Source@inline
implicit def enrichAsJavaDoubleToLongFunction[A0](sf: A0 => Long)(implicit evA0: A0 =:= Double): RichFunction1AsDoubleToLongFunction

Source@inline
implicit def enrichAsJavaDoubleUnaryOperator[A0](sf: A0 => Double)(implicit evA0: A0 =:= Double): RichFunction1AsDoubleUnaryOperator

Source@inline
implicit def enrichAsJavaFunction[T, R](sf: T => R): RichFunction1AsFunction[T, R]

Source@inline
implicit def enrichAsJavaIntBinaryOperator[A0, A1](sf: (A0, A1) => Int)(implicit evA0: A0 =:= Int, evA1: A1 =:= Int): RichFunction2AsIntBinaryOperator

Source@inline
implicit def enrichAsJavaIntConsumer[A0](sf: A0 => Unit)(implicit evA0: A0 =:= Int): RichFunction1AsIntConsumer

Source@inline
implicit def enrichAsJavaIntFunction[A0, R](sf: A0 => R)(implicit evA0: A0 =:= Int): RichFunction1AsIntFunction[R]

Source@inline
implicit def enrichAsJavaIntPredicate[A0](sf: A0 => Boolean)(implicit evA0: A0 =:= Int): RichFunction1AsIntPredicate

Source@inline

Source@inline
implicit def enrichAsJavaIntToDoubleFunction[A0](sf: A0 => Double)(implicit evA0: A0 =:= Int): RichFunction1AsIntToDoubleFunction

Source@inline
implicit def enrichAsJavaIntToLongFunction[A0](sf: A0 => Long)(implicit evA0: A0 =:= Int): RichFunction1AsIntToLongFunction

Source@inline
implicit def enrichAsJavaIntUnaryOperator[A0](sf: A0 => Int)(implicit evA0: A0 =:= Int): RichFunction1AsIntUnaryOperator

Source@inline
implicit def enrichAsJavaLongBinaryOperator[A0, A1](sf: (A0, A1) => Long)(implicit evA0: A0 =:= Long, evA1: A1 =:= Long): RichFunction2AsLongBinaryOperator

Source@inline
implicit def enrichAsJavaLongConsumer[A0](sf: A0 => Unit)(implicit evA0: A0 =:= Long): RichFunction1AsLongConsumer

Source@inline
implicit def enrichAsJavaLongFunction[A0, R](sf: A0 => R)(implicit evA0: A0 =:= Long): RichFunction1AsLongFunction[R]

Source@inline
implicit def enrichAsJavaLongPredicate[A0](sf: A0 => Boolean)(implicit evA0: A0 =:= Long): RichFunction1AsLongPredicate

Source@inline

Source@inline
implicit def enrichAsJavaLongToDoubleFunction[A0](sf: A0 => Double)(implicit evA0: A0 =:= Long): RichFunction1AsLongToDoubleFunction

Source@inline
implicit def enrichAsJavaLongToIntFunction[A0](sf: A0 => Int)(implicit evA0: A0 =:= Long): RichFunction1AsLongToIntFunction

Source@inline
implicit def enrichAsJavaLongUnaryOperator[A0](sf: A0 => Long)(implicit evA0: A0 =:= Long): RichFunction1AsLongUnaryOperator

Source@inline
implicit def enrichAsJavaObjDoubleConsumer[T, A1](sf: (T, A1) => Unit)(implicit evA1: A1 =:= Double): RichFunction2AsObjDoubleConsumer[T]

Source@inline
implicit def enrichAsJavaObjIntConsumer[T, A1](sf: (T, A1) => Unit)(implicit evA1: A1 =:= Int): RichFunction2AsObjIntConsumer[T]

Source@inline
implicit def enrichAsJavaObjLongConsumer[T, A1](sf: (T, A1) => Unit)(implicit evA1: A1 =:= Long): RichFunction2AsObjLongConsumer[T]

Source@inline

Source@inline
implicit def enrichAsJavaSupplier[T](sf: () => T): RichFunction0AsSupplier[T]

Source@inline

Source@inline

Source@inline
implicit def enrichAsJavaToIntBiFunction[T, U](sf: (T, U) => Int): RichFunction2AsToIntBiFunction[T, U]

Source@inline

Source@inline
implicit def enrichAsJavaToLongBiFunction[T, U](sf: (T, U) => Long): RichFunction2AsToLongBiFunction[T, U]

Source@inline

Source@inline
implicit def enrichAsJavaUnaryOperator[T, A1](sf: T => A1)(implicit evA1: A1 =:= T): RichFunction1AsUnaryOperator[T]

Source@inline

Source@inline
implicit def enrichAsScalaFromBiFunction[T, U, R](jf: BiFunction[T, U, R]): RichBiFunctionAsFunction2[T, U, R]

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline
implicit def enrichAsScalaFromFunction[T, R](jf: Function[T, R]): RichFunctionAsFunction1[T, R]

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

Source@inline

© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.1.1/scala/jdk/FunctionConverters$.html