栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java的lambda表达式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java的lambda表达式

文章目录
  • 1 函数式接口
  • 2 普通方式实现调用接口
  • 3 使用静态内部类优化代码
  • 4 使用局部内部类优化代码
  • 5 使用匿名类优化代码
  • 6 使用lambda表达式优化代码
  • 7 带有参数的lambda表达式

1 函数式接口

只有一个函数的接口在java中称为函数式接口

interface TestLamddaImpl {
    abstract void sayLambda();
}

这就是一个函数式接口

2 普通方式实现调用接口
  • 1 实现接口类
  • 2 实例化类
  • 3 通过实例调用接口的方法
public class TestLambda {
    public static void main(String[] args) {
        //创建一个实例
        TestLamddaImpl testLamdClass = new TestLamdClass();
        //调用实例的方法
        testLamdClass.sayLambda();
    }
}

// 2 实现接口类
class TestLamdClass implements TestLamddaImpl {
    @Override
    public void sayLambda() {
        System.out.println("hello lambda");
    }

}

// 1 实现接口
interface TestLamddaImpl {
    abstract void sayLambda();
}

输出

hello lambda
Process finished with exit code 0

3 使用静态内部类优化代码
public class TestLambda {
    public static void main(String[] args) {
        TestLamddaImpl testLamdClass = new TestLamdClass();
        testLamdClass.sayLambda();
    }
	// 实现静态内部类
    static class TestLamdClass implements TestLamddaImpl {
        @Override
        public void sayLambda() {
            System.out.println("hello lambda");
        }

    }
}

interface TestLamddaImpl {
    abstract void sayLambda();
}

4 使用局部内部类优化代码
public class TestLambda {
    public static void main(String[] args) {
		// 将类定义在main方法内就是局部内部类
        class TestLamdClass implements TestLamddaImpl {
            @Override
            public void sayLambda() {
                System.out.println("hello lambda");
            }
        }

        TestLamddaImpl testLamdClass = new TestLamdClass();
        testLamdClass.sayLambda();
    }


}


interface TestLamddaImpl {
    abstract void sayLambda();
}
5 使用匿名类优化代码
public class TestLambda {
    public static void main(String[] args) {
    	// 定义一个匿名局部内部类
        TestLamddaImpl testLamdClass = new TestLamddaImpl(){
            @Override
            public void sayLambda() {
                System.out.println("hello lambda");
            }
        };
        testLamdClass.sayLambda();
    }
}


interface TestLamddaImpl {
    abstract void sayLambda();
}
6 使用lambda表达式优化代码
public class TestLambda {
    public static void main(String[] args) {
        TestLamddaImpl testLamdda = ()->{
            System.out.println("hello lambda !!!");
        };
        testLamdda.sayLambda();
    }
}

interface TestLamddaImpl {
    abstract void sayLambda();
}


使用lambda 表达式代码精简很多

7 带有参数的lambda表达式
public class TestLambda {
    public static void main(String[] args) {
        TestLamddaImpl testLamdda = (int a)->{ // a前面的int是可以省略的 括号也是可以省略的
        	// (a)->{statements;} 省略变量类型
        	// a-> {statements;}  省略前面小括号
        	// a-> "statement"    省略后面花括号
            System.out.println("hello lambda !!!"+a);
        };
        testLamdda.sayLambda(1);
    }
}


interface TestLamddaImpl {
    abstract void sayLambda(int a); 
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/356638.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号