我知道函数不是一种方法。我需要一个方法(与java互操作),我不想传递参数,因为它可以从正文中推断出来。我想这样做:
def upperCaseOrNull = StringUtils.stripToNull _ compose StringUtils.upperCase _
这是一个完美的函数String =>字符串,但它不是一个方法所以在java我必须做
upperCaseOrNull().apply("a")
而不仅仅是:
upperCaseOrNull("a")
为了让java开心,我必须使用不必要的函数包装
def upperCaseOrNull(string : String) =
(StringUtils.stripToNull _ compose StringUtils.upperCase _) (string)
通常被认为是函数式编程中的一种坏风格。那么我可以以某种方式声明一个方法而不传递不必要的参数吗?