0304

接口。部分代码







lambda表达式





interface Eatable
{
	void taste();
}
interface Flyable
{
	void fly(String weather);
}
interface Addable
{
	int add(int a , int b);
}
public class LambdaQs
{
	public void eat(Eatable e)           // 调用该方法需要形参是Eatable对象
	{
		System.out.println("打印的是Eatable对象的toString:"+e);
		e.taste();
	}
	public void drive(Flyable f)       // 调用该方法需要形参是Flyable对象
	{
		System.out.println("打印的是Flyable对象的toString:" + f);
		f.fly("雨");
	}
	public void test(Addable add)           // 调用该方法需要形参是Addable对象
	{
		System.out.println("5与3的和为:" + add.add(5, 3));
	}
	
	public static void main(String[] args)
	{
		LambdaQs lq = new LambdaQs();
		lq.eat(    ( )->                                                                                             //形参类型可以省略,这里只有()  相当于无形参。
		                     {System.out.println("苹果味道不错");}    );                     // Lambda表达式的代码块只有一条语句,
		                                                                                                                      //可以省略花括号。他相当于的匿名内部类如下
	    	/*     lq.eat(
			 *   	new Eatable()
			 *	    {
			 *		    @Override
			 *		    public void taste()
			 *		    {
			 *		     	System.out.println("苹果闻到不错");
			 *		    }
			 *	    }
			 *	    );
			 */     
		
		lq.drive(weather ->                                                      // Lambda表达式的形参列表只有一个形参,省略圆括号。形参类型可以省略。
		{                                                                                         //其相当的你蒙内部类如下。
			System.out.println("今天天气是:" + weather);
			System.out.println("代码块第二条语句");
		});
		
		/*  lq.drive(
				new Flyable()
				{
					@Override
					public void fly(String weather)
					{
					System.out.println("今天天气是:" + weather);
					System.out.println("代码块第二条语句");
					}
				}
				);   */
		
		
		//代码块只有一条语句 可以省略花括号。省略形参类型。连return语句也可以省略。
		lq.test((a , b)->a + b);      //匿名内部类如下。
		
		/*  lq.test(
				new Addable()
				{
					@Override
					public int add(int a,int b)
					{
						return a+b;
					}
				}
				);    */
	
	}
}

猜你喜欢

转载自huadianfanxing.iteye.com/blog/2360320
今日推荐