函数式接口、方法引用

1.1函数式接口

1.1.2 概念和格式

  • 什么是函数式接口:
  1. 接口中有且只有一个抽象方法则称为函数式接口。
  • 常见的函数式接口
  1. Runnable、Callable、Comparator、FileFilter

函数式接口,即适用于函数式编程场景的接口。而Java中的函数式编程体现就是Lambda,所以函数式接口就是可以适用于Lambda使用的接口。只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利地进行推导。 

1.1.3 格式

  • 修饰符 interface 接口名称{
        public abstract 返回值类型  方法名称(可选参数信息);
        //其他非抽象方法内容
    }
    由于接口中的抽象方法public abstract 是可以省略的,所以定义一个函数式接口非常简单:
    public interface  MyFunctionInterface{
        void myMethod();
    }

1.2 @FunctionalInterface注解

  • JDK1.8新特性。
  • 作用:用来修饰接口,告诉编译器该接口是函数式接口,如果不是则会编译失败。

1.3.1 自定义函数式接口(无参无返回): 

  • 请定义一个函数式接口`Eatable`,内含抽象`eat`方法,没有参数或返回值。使用该接口作为方法的参数,并进而通过Lambda来使用它。
@FunctionalInterface
public interface Eatable {
    void eat();
}


public class FunctionalInterfaceDemo {
    public static void main(String[] args) {
        //使用匿名内部类调用
        testEatable(new Eatable() {
            @Override
            public void eat() {
                System.out.println("学习饿了要大口吃肉");
            }
        });

        //使用Lambda表达式简化匿名内部类
        testEatable(()-> System.out.println("学习java饿了要吃饭"));
    }
    public static void testEatable(Eatable e){
        e.eat();
    }
}

 1.3.2 自定义函数式接口(有参有返回)

  •  请定义一个函数式接口`Sumable`,内含抽象`sum`方法,可以将两个int数字相加返回int结果。使用该接口作为方法的
    参数,并进而通过Lambda来使用它。
@FunctionalInterface
public interface Sumable {
    int sum(int a,int b);
}


public class FunctionInterfaceDemo02 {
    public static void main(String[] args) {
        //使用匿名内部类调用
        testSumable(new Sumable() {
            @Override
            public int sum(int a, int b) {
                return a+b;
            }
        });
        //使用Lambda表达式调用
        testSumable((x,y)->x+y);
    }
    public static void testSumable(Sumable s){
        int result = s.sum(1,2);
        System.out.println(result);
    }
}

版权声明:本文为博主原创文章,转载请注明出处:https://blog.csdn.net/Huangyuhua068/article/details/81673817

交流学习:sunnyh1996@126.com

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

hyhcloud

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

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

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

打赏作者

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

抵扣说明:

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

余额充值