码迷,mamicode.com
首页 > 其他好文 > 详细

案例:函数式接口作为方法的返回值类型

时间:2020-12-03 11:54:04      阅读:7      评论:0      收藏:0      [点我收藏+]

标签:static   接口   get   import   turn   java   lam   sssss   out   

package com.chunzhi.Test03LambdaTest;

import java.util.Arrays;
import java.util.Comparator;

/*
    如果一个方法的返回值类型是一个函数式接口,那么就可以直接返回一个Lambda表达式
    当需要通过一个方法获取一个java.util.Comparator接口类型的对象作为排序器时,就可以调该方法获取。
 */
public class Test02Comparator {
    // 定义一个方法,方法的返回值类型使用函数式接口Comparator
    public static Comparator<String> getComparator() {
        // 方法的返回值是一个接口,那么我们可以返回这个接口的匿名内部类
        /*return new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                // 按照字符串的降序排序
                return o2.length() - o1.length();
            }
        };*/

        // 方法的返回值类型是一个函数式接口,所以我们可以返回一个Lambda表达式
       /* return (String o1, String o2) -> {
            return o2.length() - o1.length();
        };*/

        // 优化Lambda表达式
        return (o1, o2) -> o2.length() - o1.length();
    }

    public static void main(String[] args) {
        // 创建一个字符串数组
        String[] arr = {"aaaaa", "ooooooo", "sssssssss", "llll"};
        // 排序前数组
        System.out.println(Arrays.toString(arr));
        // 调用Arrays中的sort方法,对字符串数组进行排序
        Arrays.sort(arr, getComparator());
        // 排序后的数组
        System.out.println(Arrays.toString(arr));
    }
}

 

案例:函数式接口作为方法的返回值类型

标签:static   接口   get   import   turn   java   lam   sssss   out   

原文地址:https://www.cnblogs.com/chunzhi716/p/14055038.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!