def nothing(row:Row): Unit = {
}
我想做一些类似于rdd.foreach(functionHere)
的事情,并且我希望这个函数在Java语言中是静态等价的。我想把那个def
改成val
,但是我就是搞不懂语法。
我基本上想要有java代码,这基本上是rdd.foreach(MyScalaClass.nothing())
。
我该如何做到这一点呢?
有可能吗?
发布于 2018-08-08 05:30:59
您的意思是想要将函数作为变量传递吗?如果是这样的话,你可以写一个函数文字:
val nothing = (row: Row) => Unit
然后调用以下代码来调用它:
nothing(aRow)
发布于 2018-08-08 07:40:10
您不需要使用val
。rdd.foreach(MyScalaClass.nothing)
应该可以很好地工作。Scala会自动将方法转换为函数。与此对应的Java版本是rdd.foreach(MyScalaClass::nothing)
。
https://stackoverflow.com/questions/51735624
复制相似问题