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;
と書く.
意図が明確になるのでこちらの方が良いでしょう.