有许多潜在的有用的方法,可以被添加到
Function,
Consumer和
Supplier接口。您提供了一个很好的示例(将a转换
Consumer为
Function),但是可以添加许多其他潜在的转换或实用程序。例如,使用
Functionas
Consumer(忽略返回值)或as
Supplier(提供输入值)。或通过提供任一值将a转换
BiFunction为a
Function。当然,所有这些都可以用代码手动完成,或者通过实用程序功能提供,如您所显示的那样,但是与许多其他语言一样,在API中使用标准化的机制可能会很有价值。
这只是我的猜测,但我想这可能反映了语言设计师希望将API保持尽可能干净的愿望。但是,我对
Comparator这种语言提供的非常丰富的实用程序(例如,反向订单,按多个条件进行比较,处理空值等)的对比感到很感兴趣(这些示例)。这些也很容易留给用户,但是由API提供。我很想听听一位语言设计师的意见,为什么这些界面的方法看起来如此不一致。



