JDK1.8新特性之方法引用

方法引用

从JDK1.8开始,可以使用方法引用。

​ 我们用Lambda表达式来实现匿名方法。但有些情况下,我们用Lambda表达式仅仅是调用一些已经存在的方法,除了调用动作外,没有其他任何多余的动作,在这种情况下,我们倾向于通过方法名来调用它,而Lambda表达式可以帮助我们实现这一要求,它使得Lambda在调用那些已经拥有方法名的方法的代码更简洁、更容易理解。方法引用可以理解为Lambda表达式的另外一种表现形式。

​ 如果lambda表达式方法体中只是调用一个特定的已经存在的方法,则可以使用方法引用

常见形式:

类型 语法 对应的Lambda表达式
静态方法引用 类名::staticMethod (args) -> 类名.staticMethod(args)
实例方法引用 inst::instMethod (args) -> inst.instMethod(args)
对象方法引用 类名::instMethod (inst,args) -> inst.instMethod(args)
构建方法引用 类名::new (args) -> new 类名(args)

1、静态方法引用举例

package com.hong.method;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Arrays;
import java.util.Comparator;
import java.util.Random;
import java.util.UUID;

/**
 * @Author hongCheng
 * @Date 2021/4/25 17:46
 * @Version 1.0
 */
public class StaticTest {
   
    public static void main(String[] args) {
   
        Person[] people = new Person[10];
        for (int i = 0; i < 10; i++) {
   
            //random即随机数发生器,使用值卡需要使用Randomize语句进行随机数种子的初始化
            // random产生的是伪随机数或者说是用一种复杂的方法计算得到的序列值,
            // 因此每次运算时需要一个不同的种子值。种子值不同,得到的序列值也不同。因此也就是真正的随机数。
            // VB里用new Random()来表示。
            people[i] = new Person(new Random().nextInt(100), UUID.randomUUID().toString().substring(0, 3));
        }
        //Arrays数组的工具类    Collections是集合的工具类
        System.out.println(Arrays.asList(people));
        //排序
        Arrays.sort(people,new PersonComparator());
        System.out.println(Arrays.asList(people));

        System.out.println("====改进①====");
        Comparator<Person> comparator =  (o1,  o2)-> o1.getAge(
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值