JDK1.8新特性--Lambda表达式

 /* 一、Lambda 表达式的基础语法:Java8中引入了一个新的操作符“->”
 *     该操作符为箭头操作符或Lambda操作符,箭头操作符将Lambda表达式
 *     拆分成两部分
 * 左侧:Lambda 表达式的参数列表
 * 右侧:Lambda表达式中所需执行的功能,即Lambda体
 * 
 * 语法:
 * 语法格式一:无参无返回值
 *    ()->System.out.println("Hello World");
 * 语法二:有一个参数,并且无返回值
 *    (x)-> System.out.println(x)
 * 语法三:若有一个参数,小括号可以不写
 *     x-> System.out.println(x)
 * 语法四:有两个以上的参数,并且 Lambda 体中有多条语句,有返回值
 *     (x,y)->{
 *                 System.out.println("Hello World");
 *                  return Integer.compare(x,y);
 *             };
 * 语法格式五:若 Lambda 体只有一条return语句,那么大括号和return都可以 不写
 *       (x,y)->Integer.compare(x,y);
 * 语法格式六:lambda 表达式的参数列表的数据类型可以省略不写,因为JVM编译器会
 *             通过上下文推断出数据类型,即类型推断;  
 */           
  public class TestLambda2{
    //语法格式一:无参无返回值
    @Test
    public void test1(){
        int num=0;//jdk1.7在匿名内部类中调用局部变量需要加final
        //jdk1.8之后,默认添加
        Runnable runnable=new Runnable() {
            @Override
            public void run() {
                System.out.println("Hello World");
            }
        };
        System.out.println("**********");
        Runnable runnable1=()-> System.out.println("Hello World");
    }
    //语法二:有一个参数,并且无返回值
    @Test
    public void test2(){
        Consumer<String> consumer=(x)-> System.out.println(x);
        consumer.accept("Hello World");
    }
    //语法四:有两个以上的参数,并且 Lambda 体中有多条语句,有返回值
    @Test
    public void test3(){
        Comparator<Integer> comparator=(x,y)->{
            System.out.println("Hello World");
            return Integer.compare(x,y);
        };
    }

     //语法格式五:若 Lambda 体只有一条return语句,那么大括号和return都可以不写
    @Test
    public void test4(){
        Comparator<Integer> comparator=(x,y)->Integer.compare(x,y);
    }
}


 /* 二、Lambda  表达式需要“函数式接口”的支持
 * 函数式接口:接口中只有一个抽象方法的接口,称为函数式接口。可以使用注解
 *           @FunctionalInterface
 * java1.8  内置的四大核心函数式接口
 *
 * Consumer<T>:消费性接口
 *            void accept(T t);
 * Supplier<T>:供给性接口
 *            T get();
 * Function<T,R>:函数型接口
 *            R apply(T t);
 * Predicate<T>:断言型接口
 *            boolean test(T t);
 */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值