Lamdba表达式学习
一、Lamdba表达式格式
格式:(形式参数) -> {代码块} 形式参数:如果有多个参数,参数之间用逗号隔开;如果没有参数,留空即可 Lamdba表达式使用前提:有一个接口;接口中有且仅有一个抽象方法 举例:
public interface Inter {
void show ( ) ;
}
public static void test ( Inter i) {
i. show ( ) ;
}
public class Test1 implements Inter {
@Override
public void show ( ) {
System . out. println ( "test1" ) ;
}
}
Test1 t1 = new Test1 ( ) ;
test ( t1) ;
test ( new Inter ( ) {
@Override
public void show ( ) {
System . out. println ( "匿名类" ) ;
}
} ) ;
test (
( ) -> {
System . out. println ( "Lambda" ) ;
} ) ;
二、使用带参的Lamdba
public interface Inter {
void show ( String s) ;
}
public static void show1 ( Inter i, String s) {
i. show ( s) ;
}
show1 ( ( String s) -> { System . out. println ( s) ; } , "qwe" ) ;
三、使用带参+返回值的Lamdba
public interface Inter {
void show ( String s) ;
}
public static void show1 ( Inter i, String s) {
String s1= i. show ( s) ;
System . out. println ( s1) ;
}
show1 ( ( String s) -> { return s; } , "qwe" ) ;
函数式接口
一、概念
由于使用Lamdba是需要一个接口,且接口中有且只有一个抽象方法,我们将此接口定义为函数式接口 使用@FunctionalInterface注解来定义函数式接口 举例:
@FunctionalInterface
public interface Inter {
String show ( String s) ;
}