java中接口Function的用法

Java 中的 Function 接口是一个函数式接口,它接受一个输入参数,并且返回一个结果。Function 接口通常用于将一个对象或值转换成另一个对象或值,例如对数据进行加密、解密、格式化等场景。

下面是 Function 接口的基本用法:

  1. 定义接口对象:

    Function<Integer, String> function = (num) -> "result: " + num;

    这个示例代码定义了一个 Function 接口对象,它接受一个整数类型的参数,并返回一个字符串类型的结果,将整数转换成字符串形式并添加前缀 "result: "

  2. 使用接口对象:

    String result = function.apply(123); 
    System.out.println(result);

    在这个示例代码中,我们通过调用 apply() 方法来将一个整数传递给 Function 接口对象,并获得一个字符串作为结果。输出结果为 "result: 123"

Function 接口还可以使用方法引用(Method Reference)来简化代码,例如:

Function<Integer, String> function = String::valueOf;

这行代码等价于上面的示例代码,将 String.valueOf() 方法作为 Function 接口对象的实现。

Function 接口还可以使用其它函数式接口一起使用,例如 ConsumerPredicate 等,以实现复杂的业务逻辑。下面是几个示例:

  1. 对字符串列表进行处理:

    List<String> list = Arrays.asList("apple", "banana", "cherry");
    Function<String, Integer> function = (str) -> str.length(); 
    List<Integer> result = new ArrayList<>(); 
    for(String str : list) { 
    int len = function.apply(str); 
    result.add(len); 
    } 
    System.out.println(result); // 输出每个字符串的长度

    这个示例代码使用 Function 接口对一个字符串列表进行处理,将每个元素转换成它的长度,并将结果保存到另一个列表中。

  2. 将一种类型的对象转换成另一种类型:

    List<Person> persons = Arrays.asList(new Person("Alice"), new Person("Bob"), new Person("Charlie")); 
    Function<Person, Student> function = (person) -> new Student(person.getName());
    List<Student> result = new ArrayList<>(); 
    for(Person person : persons) { 
    Student student = function.apply(person); 
    result.add(student); 
    } 
    System.out.println(result); // 将所有人物转换成学生并输出

    这个示例代码使用 Function 接口将一个人物列表中的每个人物对象转换成对应的学生对象,并将结果保存到另一个列表中。

总之,Function 接口是 Java 中非常实用的一个函数式接口,在需要将一个对象或值转换成另一个对象或值的场景下特别有用。它可以和其它函数式接口一起使用,方便地实现复杂的业务逻辑。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值