Lambda表达式的介绍与及基本使用

package com.lin.lambdatest;
/*
*    不带参的
*/
public class LambdaTest {
//	静态的成员内部类
	static class Like2 implements Ilike {

		@Override
		public void like() {
			System.out.println("I like java");
		}
	}

	public static void main(String[] args) {
//		1)接口--->子实现类
//		接口多态
		Ilike like = new Like();
		like.like();
		System.out.println("----------");
//		2)内部类
		like =new Like2();
		like.like();
		System.out.println("----------");
//		3)提供匿名内部类-->还是内部类的一种,简化方式
		like=new Ilike() {//接口的匿名内部类:本质:继承该类该类或者实现了该接口的子类对象

			@Override
			public void like() {
				// TODO Auto-generated method stub
				System.out.println("I Like lambda3");
			}
			
		};
		like.like();
		System.out.println("------------");
//		JDK8提供了更简洁的操作,在匿名内部类基础优化
		/*
		 * 将匿名内部类--->推出来
		 * 针对函数式接口提供的这个格式:
		 * 	接口名 对象名=
		 * 			(空参)->方法体语句;
		 * 注意:如果该接口中的抽象方法是不带参数,小括号不能省略
		 * */
		like=
				()->{
			System.out.println("i like lambda4");
		};
		like.like();
	}
}

//要使用Lambda表达式,前提是存在接口一个函数式接口(接口中只有一个抽象方法)
@FunctionalInterface // 标记当前接口是一个函数式接口(只有一个抽象方法)
interface Ilike {
	void like();
}

//定义一个子实现类
class Like implements Ilike {

	@Override
	public void like() {
		// TODO Auto-generated method stub
		System.out.println("I like Lambda");
	}

}

带参数处理方法

package com.lin.lambdatest;

/*
 * 函数式接口
 * 	一个抽象方法:
 * 		带参的,有具体返回值
 * */
public class LambdaTest3 {
	public static void main(String[] args) {
		Love love=new Love() {

			@Override
			public String love(String name, int age) {
				
				return name+age;
			}
			
		};
		String result=love.love("myself", 21);
		System.out.println(result);
		
		System.out.println("----------");
		/*
		 * 接口中如果带形式参数值,在使用lambda的时候
		 * 1)方法形式参数的数据类型要么都带上,要么都不带!
		 * 2)多个形式参数,()不能省略
		 * 如果只有一个形式参数()可以省略
		 * */
		Love love2=
				(String name,int age)->{
					return name+age;
				};
		String ret=	love2.love("k", 20);
		System.out.println(ret);
	}
}

interface Love {
	String love(String name, int age);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值