郑州东区网站优化公司推荐,网站关于我们页面设计,一起做网店官网下载,室内设计网上学校我以前写过有关功能接口及其用法的文章。 如果您正在探索要成为Java 8一部分的API#xff0c;尤其是那些支持lambda表达式的API#xff0c;您会发现很少的接口#xff0c;例如Function#xff0c;Supplier#xff0c;Consumer#xff0c;Predicate和其他接口#xff0c;… 我以前写过有关功能接口及其用法的文章。 如果您正在探索要成为Java 8一部分的API尤其是那些支持lambda表达式的API您会发现很少的接口例如FunctionSupplierConsumerPredicate和其他接口它们都是java.util.function软件包的一部分。广泛使用。 这些接口具有一种抽象方法该方法被定义的lambda表达式覆盖。 在这篇文章中我将选择Function接口来简要解释它它是java.util.function包中存在的接口之一。 功能接口有两种方法 R applyT t –计算将函数应用于输入参数的结果 默认‹V›函数‹TV› –与另一个函数结合返回执行两个函数的函数。 在这篇文章中我想写一下apply方法创建接受这些接口和参数的API然后调用它们的相应方法。 我们还将研究API的调用者如何传递lambda表达式来代替接口的实现。 除了传递lambda表达式外API的用户还可以传递方法引用而我还没有写过方法引用。 函数接口用于需要将一些代码封装到一个方法中的方法该方法接受某个值作为输入参数然后在对输入执行所需的操作后返回另一个值。 方法的输入参数类型和返回类型可以相同或不同。 让我们看一下接受Function接口实现的API public class FunctionDemo {//API which accepts an implementation of //Function interfacestatic void modifyTheValue(int valueToBeOperated, FunctionInteger, Integer function){int newValue function.apply(valueToBeOperated);/** Do some operations using the new value.*/System.out.println(newValue);}
} 现在让我们看一下调用此API的代码 public static void main(String[] args) {int incr 20;int myNumber 10;modifyTheValue(myNumber, val- val incr);myNumber 15;modifyTheValue(myNumber, val- val * 10);modifyTheValue(myNumber, val- val - 100);modifyTheValue(myNumber, val- somestring.length() val - 100);
} 您可以看到正在创建的lambda表达式接受一个参数并返回一些值。 我将很快更新使用此Function接口作为参数的各种API。 同时完整的代码是 public class FunctionDemo {public static void main(String[] args) {int incr 20;int myNumber 10;modifyTheValue(myNumber, val- val incr);myNumber 15;modifyTheValue(myNumber, val- val * 10);modifyTheValue(myNumber, val- val - 100);modifyTheValue(myNumber, val- somestring.length() val - 100);}//API which accepts an implementation of //Function interfacestatic void modifyTheValue(int valueToBeOperated, FunctionInteger, Integer function){int newValue function.apply(valueToBeOperated);/** Do some operations using the new value.*/System.out.println(newValue);}} 输出为 30
150
-85
-75 注意上面的代码是使用从此处下载的JDK和Netbeans 8 nightly builds编译的 。 参考 函数接口– Java 8中java.util.function包中的函数接口来自JCG合作伙伴 Mohamed Sanaulla来自Experiences Unlimited博客。 翻译自: https://www.javacodegeeks.com/2013/04/function-interface-a-functional-interface-in-the-java-util-function-package-in-java-8.html