Scala转换为Java函数永远不会终止

时间:2019-03-28 17:41:07

标签: scala

我写了从Scala函数到Java函数的隐式转换:

import java.util.function.{Function => JavaFunction}

implicit def toJavaFunction[T, V](f: (T) => V): JavaFunction[T, V] = {
  new JavaFunction[T, V] {
    override def apply(input: T) = f(input)
  }
}

但是,IntelliJ建议将其转换为单个抽象方法:

implicit def toJavaFunction[T, V](f: (T) => V): JavaFunction[T, V] = {
  (input: T) => f(input)
}

当我转到第二种实现时,此方法中包装的函数将永远运行,并且执行永不终止。使第二种方法具有这种行为的第二种方法有何不同? IntelliJ是否缺少某些东西?

0 个答案:

没有答案