• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

maxw-obj

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

java中常用函数式接口的使用示例

 

1.1 Consumer接口

java.util.function.Consumer<T>接口消费一个数据,其数据类型由泛型参数决定。

抽象方法:accept

Consumer接口中包含抽象方法void accept(T t),意为消费一个指定泛型的数据。基本使用如:

import java.util.function.Consumer;
​
public class Demo09Consumer {
   private static void consumeString(Consumer<String> function) {
    function.accept("Hello");
  }
​
   public static void main(String[] args) {
       consumeString(s -> System.out.println(s));
  }
}

 

1.2 Predicate接口

有时候我们需要对某种类型的数据进行判断,从而得到一个boolean值结果。这时可以使用java.util.function.Predicate<T>接口。

抽象方法:test

Predicate接口中包含一个抽象方法:boolean test(T t)。用于条件判断的场景:

import java.util.function.Predicate;
​
public class Demo15PredicateTest {
   private static void method(Predicate<String> predicate) {
       boolean veryLong = predicate.test("HelloWorld");
       System.out.println("字符串很长吗:" + veryLong);
  }
​
   public static void main(String[] args) {
       method(s -> s.length() > 5);
  }
}

条件判断的标准是传入的Lambda表达式逻辑,只要字符串长度大于5则认为很长。

1.3 Function接口

java.util.function.Function<T,R>接口用来根据一个类型的数据得到另一个类型的数据,前者称为前置条件,后者称为后置条件。有进有出,所以称为“函数Function”。

抽象方法:apply

Function接口中最主要的抽象方法为:R apply(T t),根据类型T的参数获取类型R的结果。使用的场景例如:将String类型转换为Integer类型。

import java.util.function.Function;
​
public class Demo11FunctionApply {
   private static void method(Function<String, Integer> function) {
       int num = function.apply("10");
       System.out.println(num + 20);
  }
​
   public static void main(String[] args) {
       method(s -> Integer.parseInt(s));
  }
}

posted on 2025-12-23 17:03  知识札记  阅读(2)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3