Похоже, вы просто хотите with
и использовать .&
для преобразования методов в Closures и >>
для композиции функций.
public static String addExclamations(String s) {
return s + "!!!"
}
Closure printUppercase = { String s -> println s.toUpperCase() }
"Hello World".with (this.&addExclamations >> printUppercase)
Пример из реального мира, в котором я использую всевремя:
import groovy.json.JsonOutput
[a:[b:'c', d:'e']].with (JsonOutput.&toJson >> JsonOutput.&prettyPrint)
Я не уверен, что вы делаете с многопараметрическим материалом, потому что различные решения curry
кажутся мне разумными, но вы это отклонили ... возможно, яможете отредактировать этот ответ, если вы можете привести пример того, как бы вы хотели, чтобы он выглядел?