Java函数式接口

函数式接口

1. 函数式接口
1.1 概述
	如果说一个接口内有且只有一个方法,而且该方法是一个缺省属性为public abstract方法,该接口可以称之为是一个函数式接口。
	自定义函数式接口,还有系统中提供的函数式接口
	Comparator<T> Runnable
	
	可以直接理解JDK1.8的新特征,Lambda表达式来使用。
	
	Lambda表达式对比匿名内部类使用
		1. 简化了代码结构
		2. 节约了内存资源
		3. 让程序员更加关注,我要做什么,而不是为了做什么需要完成什么
1.2 @FunctionalInterface 使用
类似于
	@Override
	开启代码重写格式严格检查
/**
 * 使用@FunctionalInterface检查函数式接口格式问题
 * 要求当前接口中有且只有一个缺省属性为public abstract的方法
 *
 * @author Anonymous 2020/3/11 9:55
 */
@FunctionalInterface
public interface FunctionalType {
    void test();
}
1.3 使用自定义的函数式接口作为方法的参数使用
package com.qfedu.a_functional;

/**
 * 自定义函数式接口作为方法的参数演示
 *
 * @author Anonymous 2020/3/11 9:55
 */
public class Demo1 {
    public static void main(String[] args) {
        /*
        使用匿名内部类来完成函数式接口的使用,但是这种方式有悖于函数式接口的目的
        Low

        useFunctionalInterface(new FunctionalType() {
            @Override
            public void test() {
                System.out.println("匿名内部类的匿名对象直接作为方法的参数。");
            }
        });
        int(*) (char **, int *)
            C语言中的函数指针
            如果是C语言中,这需要的参数是方法名
        */
       useFunctionalInterface(() -> System.out.println("函数式接口 lambda表达式实现完成方法,实现目的"));
    }

    /**
     * 使用一个函数式接口作为方法的参数
     *
     * @param ft 函数式接口的实现类对象,或者说直接操作本质,直接传入Lambda表达式
     */
    public static void useFunctionalInterface(FunctionalType ft) {
        ft.test();
    }
}
代码中使用函数式接口
	1. 让程序的目的性更强
	2. 提供复用,普适性的价值
	3. 节约资源
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值