c#的delegate,golang的func(),js的function都是一等公民(first-class citizen),在这个意义上,java并没有完全与之对等的语言概念。
但java中并非不能返回一个函数,或者将函数赋值给某个变量,这项工作应该由jdk 7时代引入的java.lang.invoke.MethodHandles来完成。(详见:
https://www.infoq.cn/article/jdk-dynamically-typed-language)
上一楼列的谓词函数并不能满足承载函数这个需求,因为谓词与方法签名中的参数表和返回值是直接相关的,不同签名的方法要用不同的谓词来抽象。
--
FROM 14.123.254.*