Java8新特性(二)之函数式接口

1. 什么是函数式接口

  1) 只包含一个抽象方法的接口

  2) 使用Lambda表达式去创建该对象。(若Lambda接口抛出一个受检异常,那么该异常需要在接口目标接口的抽象方法上进行声明)

  3) 在任何函数式接口上使用@FunctionalInterface注解,可以检查该接口中是否是一个函数式接口。

2. 常用的JDK自定义的函数式接口(四大核心函数式接口)

    

  1) Consumer<T> 消费型接口

    对类型为T的对象应用操作,包含方法 void accept(T t);

    

  2) Supplier<T> 供给型接口

    返回类型为T的对象,包含方法: T get();

    

 

  3) Function<T, R> 函数型接口

    对类型为T的对象应用操作,并返回结果为R类型的对象,包含方法为: R apply(T t);

    

  4)Predicate<T> 断定型接口

    确定类型为T 的对象是否满足某约束,并返回类型boolean的值,包含方法为:boolean test(T t);

    

3. 自定义函数式接口

案例一:

/**
 * 自定义函数接口
 */
@FunctionalInterface
public interface MyFunctional {
    public int getValue();
}

 

 使用测试:

 public static void main(String[] args) {
        List<Integer> intList = Arrays.asList(11,22,33,44,55);
        for (Integer i : intList) {
            MyFunctional myFunctional = () -> i;
            System.out.println(myFunctional.getValue());
        }

    }

 


案例二(含泛型):

/**
 * 待泛型的函数式接口
 * @param <T>
 * @param <R>
 */
@FunctionalInterface
public interface MyTwoArgsInterface<T, R> {
    public R retRstr(T t1, T t2);
}

测试案例二:

    @Test
    public void test() {
        MyTwoArgsInterface<Long, Long> mti =  (t1, t2) -> {
            return t1 + t2;
        };
        System.out.println(mti.retRstr(3l,4l));
    }

 

转载于:https://www.cnblogs.com/sun-flower1314/p/11199831.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值