Java中Lamda表达式和实例化类的几种方式

  1. Lamda表达式作用:
    * 避免匿名内部类定义过多
    * 可以让代码看起来更简洁
    * 去掉了一些没有意义的代码,只留下核心的逻辑
  2. 创建函数式接口ILike 以及实例化
    函数式接口定义:任何接口,只包含一个抽象方法,那么就是一个函数式接口
    Lambda表达式前提是函数式接口
    //1.创建函数式接口
    interface ILove{
     void love(int a);
    }
    //2.实现类
    class Love implements ILove{
    @Override
    public void love(int a){
    	System.out.println("I love you !!");
    }
    }
    //实例化
    public class TestLambda{
    //3.静态内部类
    stattic class Love implements ILove{
    		@Override
    		public void love(int a){
    				System.out.println("I love you !");
    			}
    	}
    	public static void main(String[] args){
    		//静态内部类的实例化
    		//父类引用指向子类
    		ILove love = new Love();
    		//调用重写的方法love()
    		love.love(2);
    		//4.局部内部类
    		class Love implements ILove{
    			//重写love()方法
    			@Override
    			public void love(int a){
    				System.out.println("I love you !"+a);
    			}
    		}
    		//实例化局部内部类
    		//父类引用指向子类
    		ILove love1 = new Love();
    		//调用love方法
    		love1.love(2);
    		//通过lamda实现接口
    		ILove love2 = new ILove(){
    		   //重写love方法
    			@Override
    			public void love(int a){
    					System.out.println("I love you!");
    			}
    		}
    		//lambda表达式简化
    		ILove love3 = (int a)->{
    		 	System.out.println("I love you !"+a);
    		};
    		//调用love方法
    		love3.love(520);
    		//可以去掉参数类型
    		ILove love4 = (a)->{
    			System.out.println("I love you !"+a);
    		};
    		love4.love(520);
    		//简化括号
    		ILove love5 = null;
    		love5 = a->{
    			System.out.println("I love you !"+a);
    		};
    		love5.love(520);
    		//多个参数去掉参数类型
    		ILove love6 = (a,b){
    			System.out.println("I love you !");
    			};
    		//去掉花括号
    		love = a-> System.out.println("I love you --->"+a);
    		love.love(520);
    	}
    }
    

}

  1. 总结
    lambda表达式是JD8的新特性
    前提是函数式接口
    重写的方法多个参数也可以去掉参数类型,要去掉参数类型都去掉,不能有的去掉,有的不去,这样会报错,还必须要加括号
    ILove love6 = (a,b){
    System.out.println(“I love you !”);
    };
    lambda表达式当只有一行代码的情况下可以简化成为一行,如果有多行,那么就用代码块包裹

    love = a-> System.out.println(“I love you —>”+a);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值