首页 > 编程语言 >学习笔记-Java8新特性-第三节-方法引用与构造器引用

学习笔记-Java8新特性-第三节-方法引用与构造器引用

时间:2023-05-21 23:11:53浏览次数:31  
标签:第三节 示例 Java8 引用 Employee new 方法 public

方法引用与构造器引用

什么是方法引用

  • 对方法的引用

  • 若Lambda体中的内容,已经有方法实现了,我们可以使用该方法的方法引用作为替代

    • 已经有方法实现了是指,该方法的参数列表和返回值类型和lambda的一致
  • 可以将方法引用理解成Lambda表达式的另外一种表现形式

语法格式

  • 对象::实例方法名

  • 类::静态方法名

  • 类::示例方法名

    • 当参数有两个,第一个参数是方法的调用者,第二个是方法的参数时

    • 可以用这种写法

示例

    public void test1() {
        Consumer<String> consumer1 = (x) -> System.out.println(x);

        PrintStream ps = System.out;
        Consumer<String> consumer2 = ps::println;

        Consumer<String> consumer3 = System.out::println;
    }

构造器引用

  • 含义和方法引用相似

  • 同样需要参数列表保持一致

格式

ClassName::new

示例

    public void test2() {
        Supplier<Employee> sup = () -> new Employee();

        //    public Employee() {
        //        
        //    }
        Supplier<Employee> sup2 = Employee::new;

        //    public Employee(String name) {
        //        this.name = name;
        //    }
        Function<String, Employee> function = Employee::new;
    }

数组引用

  • 与构造器引用类似

格式

Type[]::new

示例

    public void test3() {
        Function<Integer, Integer[]> function1 = (x) -> new Integer[x];
        Function<Integer, Integer[]> function2 = Integer[]::new;
    }

标签:第三节,示例,Java8,引用,Employee,new,方法,public
From: https://www.cnblogs.com/Andl-Liu/p/17419433.html

相关文章

  • 学习笔记-Java8新特性-第二节-Lambda表达式
    Lambda表达式Lambda表达式是什么Lambda是一个匿名函数是一段可以传递的代码是一种语法糖使用Lambda可以写出更简洁、更灵活的代码如果要使用Lambda表达式,需要函数式接口的支持Lambda的语法格式基础语法Java8中引入了一个新的操作符->称为箭头操作符或La......
  • 第二十二篇——「硬核讲解」通达信如何跨周期引用均线?(从零起步编写通达信指标公式系列
    内容提要:本文主要介绍了编写通达信跨周期引用均线指标公式需要用到的方法,以及在固定位置写文字、数字需要使用的函数,并进行综合运用编写指标公式。 这几天有人问能否实现主图标记不同周期均线价格并按大小实时排序,比如显示60分钟,120分钟,日线,周线,5/10/20/30/60周期均线价格并......
  • java引用类型传值
    引用类型参数的传递,调用方的变量,和接收方的参数变量,地址指向的是同一个对象。双方任意一方对这个对象的修改,都会影响对方myself:这样也不用像php加&,说变就跟着变,会不会很麻烦,出现一些隐匿的bugpublicclassImoocStudent{publicvoidreplaceFirstPlayer(String......
  • java8
    1.编写一个方法,实现冒泡排序(由小到大),并调用该方法packagetest;publicclassccc1{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubintx[]={1,3,5,6,7,2};paixu(x);for(inti=0;i<x.length;i++){System.out.println(x[i]);}}publicstaticvoi......
  • 基本数据类型与引用类型在存储上的区别
    基本数据类型和引用数据类型在存储上的区别基本数据类型有哪些类型名称关键字占用内存取值范围字节型byte1字节-128~127短整型short2字节-32768~32767整型int4字节-2147483648~2147483647长整型long8字节-9223372036854775808L~92233720368......
  • wpf XAML 设计器异常,提示NullReferenceException 未将对象引用设置到对象
     在cs构造函数里手动注册,并且在控件的构造函数里增加判断if(DesignerProperties.GetIsInDesignMode(this)){return;}//在这里才注册Load事件cmbSpeed.Loaded+=cmbSpeed_Loaded;来源:https://www.cnblogs.com/zsx-blog/p/8311633.html ......
  • java8新特性,stream流简单使用
    //新建测试类@Data@NoArgsConstructor@AllArgsConstructor@EqualsAndHashCodepublicclassAuthor{//idprivateLongid;//姓名privateStringname;//年龄privateIntegerage;//简介privateStringintro;//作品privateList<Book>......
  • Java8 Stream --groupingBy 分组讲解
    本文主要讲解:Java8Stream之Collectors.groupingBy()分组示例Collectors.groupingBy()分组之常见用法功能代码:/***使用java8streamgroupingBy操作,按城市分组list*/publicvoidgroupingByCity(){Map<String,List<Employee>>map=employe......
  • 26、java 中都有哪些引用类型?
    (1)强引用Java中默认声明的就是强引用,比如:Objectobj=newObject();obj=null;只要强引用存在,垃圾回收器将永远不会回收被引用的对象。如果想被回收,可以将对象置为null;(2)软引用(SoftReference)在内存足够的时候,软引用不会被回收,只有在内存不足时,系统才会回收软引用对象,如果回收......
  • Linux下创建线程报错‘pthread_create’未定义的引用
    报错如下:我查找了网页上的解决方案,发现多数是因为编译链接时没有加-lpthread可是我加了,一直都在用;最终找出问题所在:函数名写错了pthread_create()而不是pthread_creat()细心是一种美好品质,希望我能尽快拥有它。......