常用函数式接口——Function

Function<T,R>:常用的两个方法

        R apply(T t):将此函数应用于给定的参数

        default<V> Function andThen(Function after): 返回一个组合函数,首先将该函数应用于输入,然后将after函数应用于结果

        Function<T,R>接口通常用于对参数进行处理,转换(处理逻辑由Lambda表达式实现),然后返回一个新的值

package com.aynu24;

//Function<T,R>:常用的两个方法
//
//        R apply(T t):将此函数应用于给定的参数
//        default<V> Function andThen(Function after): 返回一个组合函数,首先将该函数应用于输入,然后将after函数应用于结果
//        Function<T,R>接口通常用于对参数进行处理,转换(处理逻辑由Lambda表达式实现),然后返回一个新的值

import java.util.function.Function;

public class FunctionDemo {
    public static void main(String[] args) {

//        convert("100",(String s)->{
//            return Integer.parseInt(s);
//        });

        convert("100", s ->
                Integer.parseInt(s));

//        convert("100",Integer::parseInt);

        convert(100, i -> String.valueOf(i + 566));

        convert("100", s -> Integer.parseInt(s), i -> String.valueOf(i + 566));
    }

    //定义一个方法,把一个字符串转换int类型,在控制台输出
    private static void convert(String s, Function<String, Integer> fun) {
        //  Integer  i= fun.apply(s);
        int i = fun.apply(s);
        System.out.println(i);
    }


    //定义一个方法,把一个int类型的数据加上一个整数之后,转为字符串在控制台输出

    private static void convert(int i, Function<Integer, String> fun) {
        String s = fun.apply(i);
        System.out.println(s);

    }

    //定义一个方法,把一个字符串转换为int类型,把int类型数据加上一个整数之后,转为字符串在控制台上

    private static void convert(String s, Function<String, Integer> fun1, Function<Integer, String> fun2) {
//        Integer i = fun1.apply(s);
//        String ss = fun2.apply(i);
//        System.out.println(ss);

        String ss= fun1.andThen(fun2).apply(s);
        System.out.println(ss);
    }

}

100
666
666

练习:

         String s="林青霞,30";

        请按照我指定的要求进行操作

                将字符串截取得到数字年龄部分

                将上一步的年龄字符串转换成为int类型的数据

                将上一步的int数据加70,得到一个int结果,在控制台输出

        请通过Funtion接口来实现函数拼接

package com.aynu24;

//练习:
//        String s="林青霞,30";
//        请按照我指定的要求进行操作
//            将字符串截取得到数字年龄部分
//            将上一步的年龄字符串转换成为int类型的数据
//            将上一步的int数据加70,得到一个int结果,在控制台输出
//        请通过Funtion接口来实现函数拼接

import java.util.function.Function;

public class FunctionTest {
    public static void main(String[] args) {
        String s = "林青霞,30";

//        convert(s,(String ss)->{
//            return s.split(",")[1];
//        },(String ss)->{
//         return Integer.parseInt(ss);
//    },(Integer i)->{
//                return i+70;
//
//        });

//        convert(s, ss -> ss.split(",")[1], ss -> Integer.parseInt(ss), i -> i + 70);
        convert(s, ss -> ss.split(",")[1],Integer::parseInt, i -> i + 70);
    }

    private static void convert(String s, Function<String, String> fun1, Function<String, Integer> fun2, Function<Integer, Integer> fun3) {
//        Integer i= fun1.andThen(fun2).andThen(fun3).apply(s);
        int i = fun1.andThen(fun2).andThen(fun3).apply(s);
        System.out.println(i);

    }
}

100 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iuiu啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值