Java側からScalaのforeachメソッドをcallする
問題
ScalaのCollectionのforeachメソッドの返り値型はUnitである.
Javaでラムダ式を渡すと返り値型がvoidになり自動変換されないのでコンパイルエラーとなる.
解決策
mapを使う
mapを使ってreturn null;とでもしておく.
すごくダサい.
多分JVMは最適化してくれるでしょうがnullが詰まったコレクションが新規作成されてしまうのも気になるところ.
scala.runtime.BoxedUnit.UNITを使う
return scala.runtime.BoxedUnit.UNIT;
と書く.
意図が明確になるのでこちらの方が良いでしょう.
hatena-bookmark