Lanmd表达式04

Lamda表达式
  • λ希腊字母表中排序第十一位的字母,英文名Lamda
  • 避免匿名内部类定义过多
  • 其实实质属于函数式编程的概念
(params) -> expression [表达式]
(params) ->statement [语句]
(params) ->{}
函数式接口
  • 理解Functional Interface(函数式接口) 是学习java8 lambda表达式的关键所在。

  • 函数式接口的定义:

    • 任何接口,如果只包含唯一一个的抽象方法,那么它就是一个函数式接口。
    public interface Runnable{
        public abstract void run();
    }
    
    • 对于函数式接口,可以通过lamda表达式来创建接口的对象。
    • //总结lamda表达式中只有一行代码时才能简化花括号,只有一个参数的时候才能简化小括号
package com.cnblo.www.lamda;

//推导加简化lamda表达式
public class LamdaTest02 {

	//静态类
	static class Mylove02 implements Love{

		@Override
		public void loveFuncat(String a) {
			System.out.println(" I love you 02!"+a);


		}
	}
	public static void main(String  args[]) {

		Love ml01=new Mylove01();
		ml01.loveFuncat("China");

		ml01=new Mylove02();
		ml01.loveFuncat("China");


		//内部类
		class Mylove03 implements Love{

			@Override
			public void loveFuncat(String a) {
				System.out.println(" I love you 03!"+a);

			}
		}
		ml01=new Mylove03();
		ml01.loveFuncat("China");

		//匿名内部类的方式		
		ml01=new  Love() {
			public void loveFuncat(String a) {
				System.out.println(" I love you 04!"+a);
			}} ;    
			ml01.loveFuncat("china");
			//lamda表达式			  
			ml01=(String a)-> {
				System.out.println(" I love you 05!"+a);
			};	ml01.loveFuncat("china");
			//lamda表达式简化01 去掉参数类型			  
			ml01=(a) -> {
				System.out.println(" I love you 06!"+a);
			};
			ml01.loveFuncat("china");
			//lamda表达式简化02	简化括号(多个参数时不能去掉括号)		  
			ml01= a -> {
				System.out.println(" I love you 07!"+a);
			};
			ml01.loveFuncat("china");
        	//lamda表达式简化03 去掉花括号			  
			ml01= a -> 
				System.out.println(" I love you 08!"+a);
			
			ml01.loveFuncat("china");
	}
}

//以前的常用方式
class Mylove01 implements Love{

	@Override
	public void loveFuncat(String a) {
		System.out.println(" I love you 01!"+a);

	}	
}
//函数式接口,只有一个抽象方法
interface  Love{
	public abstract void loveFuncat(String a) ;
}
/* I love you 01!China
 I love you 02!China
 I love you 03!China
 I love you 04!china
 I love you 05!china
 I love you 06!china
 I love you 07!china
 I love you 08!china*/
posted @ 2025-12-30 10:49  翻滚的小井蛙  阅读(4)  评论(0)    收藏  举报