JDK1.8新特性Lambda语法

package com.test4;
public class JDK8Demo {
    public static void main(String[] args) {
        
        //要实现接口的方法:
        
        
        //第一种,创建继承接口的实现类:
        IEat ieat1 = new IEatImpl();
        ieat1.eat();
        
        //第二种,创建匿名内部类实现:
        IEat ieat2 = new IEat(){
            public void eat(){
                System.out.println("eat bnananl");
            }
        };
        ieat2.eat();
        
        //第三种,使用JDK1.8新特性lambda方法:语法: (参数1,参数2,...) -> {代码块;};
        /**
        使用Lambda表达式的前提:接口里只有一个抽象方法
        (1)没有参数时使用Lambda表达式
        (2)带参数时使用Lambda表达式
        (3)代码块中只有一句代码时使用Lambda表达式
        (4)代码块中有多句代码块时使用Lambda表达式
        (5)有返回值的代码块
        (6)参数中使用final关键字
        */
        
        //无参的Lambda表达式
        IEat ieat3 = () -> {System.out.println("eat tomato");};
        ieat3.eat();
        
        //实现方法的代码块只有一句时,花括号可以省略
        IEat ieat4 = () -> System.out.println("eat tomato");
        ieat4.eat();
        
        //带参数时
        IEat ieat5 = (String name) -> {System.out.println("eat tomato"+name);};
        ieat5.eat("tomato");
        //带参数时类型也可以省去
        IEat ieat6 = (name) -> {System.out.println("eat tomato"+name);};
        ieat6.eat("tomato");
        //带多个参数时类型也可以省去
        IEat ieat6 = (name,thing) -> {System.out.println("eat tomato"+name+thing);};
        ieat6.eat("tomato","thinig");

        //接口里的方法参数使用final修饰时,Lambda表达式里的参数也必须带上final
        IEat ieat7 = (final String name) -> {System.out.println("eat tomato"+name);};
        ieat7.eat("tomato");
        
        //有返回值时
        IEat ieat8 = () -> {
            System.out.println("eat tomato");
            return 10;
        };
        ieat8.eat();
        
        //有返回值时,且只有一句代码块时,且该代码块就是返回语句,花括号可以省去
        IEat ieat9 = () -> 10; //return 10;renturn也要省去
        ieat9.eat();

    }

}

//只有一个抽象方法的接口
interface IEat{
    public void eat();
}

class IEatImpl implements IEat{
    public void eat(){
        System.out.println("eat apple");
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容