我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

Java8方法引用与构造器引用,数组引用举例分析

这篇文章主要讲解了“Java 8方法引用与构造器引用,数组引用举例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java 8方法引用与构造器引用,数组引用举例分析”吧!

成都网络公司-成都网站建设公司创新互联公司10多年经验成就非凡,专业从事做网站、成都网站设计,成都网页设计,成都网页制作,软文发布平台一元广告等。10多年来已成功提供全面的成都网站建设方案,打造行业特色的成都网站建设案例,建站热线:028-86922220,我们期待您的来电!

import org.junit.Test;import java.io.PrintStream;import java.util.Comparator;import java.util.function.BiFunction;import java.util.function.BiPredicate;import java.util.function.Consumer;import java.util.function.Function;import java.util.function.Supplier;/* * 一、方法引用:若 Lambda 体中的功能,已经有方法提供了实现,可以使用方法引用 *             (可以将方法引用理解为 Lambda 表达式的另外一种表现形式) * 
 * 1. 对象的引用 :: 实例方法名 * 
 * 2. 类名 :: 静态方法名 * 
 * 3. 类名 :: 实例方法名 * 
 * 注意: *      ①方法引用所引用的方法的参数列表与返回值类型,需要与函数式接口中抽象方法的参数列表和返回值类型保持一致! *      ②若Lambda 的参数列表的第一个参数,是实例方法的调用者,第二个参数(或无参)是实例方法的参数时,格式: ClassName::MethodName * 
 * 二、构造器引用 :构造器的参数列表,需要与函数式接口中参数列表保持一致! * 
 * 1. 类名 :: new * 
 * 三、数组引用 * 
 *     类型[] :: new; * 
 * 
 */public class TestMethodRef {   //数组引用   @Test   public void test8(){
      Function fun = (args) -> new String[args];      String[] strs = fun.apply(10);      System.out.println(strs.length);            System.out.println("--------------------------");            Function fun2 = Employee[] :: new;      Employee[] emps = fun2.apply(20);      System.out.println(emps.length);   }   
   //构造器引用   @Test   public void test7(){
      Function fun = Employee::new;      Employee em=fun.apply("www");      System.out.println(em.getName());            BiFunction fun2 = Employee::new;   }   
   @Test   public void test6(){
      Supplier sup = () -> new Employee();      System.out.println(sup.get());            System.out.println("------------------------------------");            Supplier sup2 = Employee::new;      System.out.println(sup2.get());   }   
   //类名 :: 实例方法名   @Test   public void test5(){
      BiPredicate bp = (x, y) -> x.equals(y);      System.out.println(bp.test("abcde", "abcde"));            System.out.println("-----------------------------------------");            BiPredicate bp2 = String::equals;      System.out.println(bp2.test("abc", "abc"));            System.out.println("-----------------------------------------");                  Function fun = (e) -> e.show();      System.out.println(fun.apply(new Employee()));            System.out.println("-----------------------------------------");            Function fun2 = Employee::show;      System.out.println(fun2.apply(new Employee()));         }   
   //类名 :: 静态方法名   @Test   public void test4(){
      Comparator com = (x, y) -> Integer.compare(x, y);            System.out.println("-------------------------------------");            Comparator com2 = Integer::compare;   }   
   @Test   public void test3(){
      BiFunction fun = (x, y) -> Math.max(x, y);      System.out.println(fun.apply(1.5, 22.2));            System.out.println("--------------------------------------------------");            BiFunction fun2 = Math::max;      System.out.println(fun2.apply(1.2, 1.5));   }   //对象的引用 :: 实例方法名   @Test   public void test2(){
      Employee emp = new Employee(101, "张三", 18, 9999.99);            Supplier sup = () -> emp.getName();      System.out.println(sup.get());            System.out.println("----------------------------------");            Supplier sup2 = emp::getName;      System.out.println(sup2.get());   }   
   @Test   public void test1(){
      PrintStream ps = System.out;      Consumer con = (str) -> ps.println(str);      con.accept("Hello World!");            System.out.println("--------------------------------");            Consumer con2 = ps::println;      con2.accept("Hello Java8!");            Consumer con3 = System.out::println;   }
   
}

感谢各位的阅读,以上就是“Java 8方法引用与构造器引用,数组引用举例分析”的内容了,经过本文的学习后,相信大家对Java 8方法引用与构造器引用,数组引用举例分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


名称栏目:Java8方法引用与构造器引用,数组引用举例分析
标题URL:http://shouzuofang.com/article/gcpssd.html

其他资讯