Lambda表达式的使用
练习2:
定义一个接口(Flyable),里面定义一个抽象方法:void fly(String s);
定义一个测试类(FlyableDemo),在测试类中提供两个方法
一个方法是:useFlyable(Flyable f)
一个方法是主方法,在主方法中调用useFlyable方法
package com.aynu18;//练习2:
//
// 定义一个接口(Flyable),里面定义一个抽象方法:void fly(String s);
//
// 定义一个测试类(FlyableDemo),在测试类中提供两个方法
// 一个方法是:useFlyable(Flyable f)
// 一个方法是主方法,在主方法中调用useFlyable方法public class FlyableDemo {public static void main(String[] args) {//在主方法中调用useFlyable方法//匿名内部类useFlyable(new Flyable() {@Overridepublic void fly(String s) {System.out.println(s);System.out.println("飞机自驾游");}});System.out.println("--------");//LambdauseFlyable((String s) -> {System.out.println(s);System.out.println("飞机自驾游");});}private static void useFlyable(Flyable f){f.fly("风和日丽,晴空万里");}
}
package com.aynu18;public interface Flyable {void fly(String s);
}
风和日丽,晴空万里
飞机自驾游
--------
风和日丽,晴空万里
飞机自驾游
练习3:
定义一个接口(Addable),里面定义一个抽象方法:int add(int x,int y);
定义一个测试类(AaddableDemo),在测试类中提供两个方法
一个方法是:useAddable(Addable a)
一个方法是主方法,在主方法中调用useAddable方法
package com.aynu18;//练习3:
//
// 定义一个接口(Addable),里面定义一个抽象方法:int add(int x,int y);
// 定义一个测试类(AaddableDemo),在测试类中提供两个方法
// 一个方法是:useAddable(Addable a)
// 一个方法是主方法,在主方法中调用useAddable方法public class AaddableDemo {public static void main(String[] args) {//在主方法中调用useAddable方法//lambdauseAddable((int x,int y) ->{return x+y;
// return x-y;});}private static void useAddable(Addable a){int sum = a.add(10, 20);System.out.println(sum);}
}
package com.aynu18;public interface Addable {int add(int x,int y);
}
30
Lambda表达式的省略模式
参数的类型可以省略,但是有多个参数的情况下,不能只省略一个 如果参数有且仅有一个,那么小括号可以省略 如果代码块的语句只有一条可以省略大括号和分号,如果有return,return也要省略掉
package com.aynu18;public class LambdaDemo {public static void main(String[] args) {
// useAddable((int x,int y)->{
// return x+y;
// });// useAddable(( int x, int y)->{
// return x+y;
// });//参数的类型可以省略
// useAddable(( x, y)->{
// return x+y;
// });//但是有多个参数的情况下,不能只省略一个
// useAddable(( int x, y)->{
// return x+y;
// });// useFlyable((String s)->{
// System.out.println(s);
// });// useFlyable(( s)->{
// System.out.println(s);
// });//如果参数有且仅有一个,那么小括号可以省略
// useFlyable( s->{
// System.out.println(s);
// });//如果代码块的语句只有一条可以省略大括号和分号useFlyable( s->System.out.println(s));//如果代码块的语句只有一条可以省略大括号和分号,如果有return,return也要省略掉useAddable(( x, y)->x+y);}private static void useFlyable(Flyable f){f.fly("风和日丽,晴空万里");}private static void useAddable(Addable a){int sum = a.add(10,20);System.out.println(sum);}
}
package com.aynu18;public interface Flyable {void fly(String s);
}
package com.aynu18;public interface Addable {int add(int x,int y);
}
风和日丽,晴空万里
30