Тип функции в Scala обозначается
(Types,To,Pass) => ReturnType
(вы можете опустить парены, если есть только один тип для передачи), и способ преобразования метода в функцию для передачи другому методу -
myObject.myMethod _
Итак, собрав их вместе и обращая внимание на типы классов Java:
scala> def addMySize(adder: Int => Boolean, sizer: () => Int) = adder(sizer())
addMySize: ((Int) => Boolean,() => Int)Boolean
scala> val a = new java.util.ArrayList[Int]()
a: java.util.ArrayList[Int] = []
scala> addMySize(a.add _, a.size _)
res0: Boolean = true
scala> addMySize(a.add _, a.size _)
res1: Boolean = true
scala> println(a)
[0, 1]
(Обратите внимание, что ArrayList имеет дополнение, которое принимает объект и возвращает логическое значение, а не возвращающее void.)