编写Java 7库代码以便与Java 8 lambdas一起使用

时间:2014-03-12 08:12:11

标签: java lambda functional-programming backwards-compatibility java-8

我正在编写需要在Java 7中运行和编译的库代码,所以我不能直接在Java 8中使用新的lambda特性。

但是我仍然希望代码可以方便地与Java 8一起使用。例如:

  • 如果内部类/ vistor样式模式可以被Java 8用户用作Lambdas将会有所帮助
  • 我想提供便于使用lambdas的API

我应该采用哪些做法来确保我的图书馆的Java 7和Java 8用户获得最佳体验?

1 个答案:

答案 0 :(得分:1)

Lambda表达式基于单方法接口。在使用单方法接口实现的任何地方(例如,实现具有一个方法的接口的匿名内部类),Java 8用户可以使用lambda表达式。

看看如何在Java 8中修改集合类;例如,添加到forEach的{​​{1}}方法。每个方法都采用单方法接口作为参数。

看看:

为了使您的库可用于Java 8之前的用户,您可能还希望提供支持迭代集合的旧样式的方法;不要强迫这些用户使用大量的匿名内部类。