java8特性之lambda表达式

一、概述

只要是只有一个方法的接口就可以使用lambda表达式,这样的接口被称为“函数式接口”。

 

二、例子

public interface TestInter {

    void test();

}
public interface TestInter2 {

    void test(int param);

}
public interface TestInter3 {

    boolean test(int param);

}
public class TestLambda {

    public void func(TestInter testInter){
        testInter.test();
    }

}
public class TestLambda2 {

    public void func(TestInter2 testInter2,int param){
        testInter2.test(param);
    }

}
public class TestLambda3 {

    public boolean func(TestInter3 testInter3,int param){
        return testInter3.test(param);
    }

}
/**
 * 匿名内部类,只有一个方法的接口就可以使用lambda表达式,例如Runnable
 *  public interface Runnable {
 *      public abstract void run();
 *  }
 *  参考:https://www.cnblogs.com/yulinfeng/p/8452379.html
 */
public class Test1 {

    public static void main(String[] args) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("Hello world");
            }
        }).start();

        new Thread(() -> System.out.println("xxx")).start();


        new TestLambda().func(new TestInter() {
            @Override
            public void test() {
                System.out.println("TestInter");
            }
        });

        //没有参数,没有返回值
        new TestLambda().func(() -> System.out.println("TestInter"));

        //有参数,没有返回值
        new TestLambda2().func((x) ->System.out.println(x),1);

        //有参数,有返回值
        //方法多行用{}包裹
        new TestLambda3().func((x) -> {
            System.out.println("TestInter3");
            return false;
        },3);

    }

}

三、测试结果

参考:https://www.cnblogs.com/yulinfeng/p/8452379.html

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值