Lambda表达式
理解Functional Interface((函数式接口)是学习Java8 lambda表达式的关键所在。函数式接口的定义:
任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口。 对于函数式接口,我们可以通过lambda表达式来创建该接口的对象。
为什么要使用lambda表达式
避免匿名内部类定义过多 可以让你的代码看起来很简洁 去掉了一堆没有意义的代码,只留下核心的逻辑。
public class TestLambda {
static class ILike2 implements Like {
@Override
public void lambda ( ) {
System. out. println ( "我是静态内部类2" ) ;
}
}
public static void main ( String[ ] args) {
Like iLike = new ILike ( ) ;
iLike. lambda ( ) ;
new ILike2 ( ) . lambda ( ) ;
class ILike3 implements Like {
@Override
public void lambda ( ) {
System. out. println ( "我是局部内部类3" ) ;
}
}
new ILike3 ( ) . lambda ( ) ;
iLike= new Like ( ) {
@Override
public void lambda ( ) {
System. out. println ( "我是匿名内部类4" ) ;
}
} ;
iLike. lambda ( ) ;
iLike= ( ) - > {
System. out. println ( "我是lambdab 5" ) ;
} ;
iLike. lambda ( ) ;
}
}
interface Like {
void lambda ( ) ;
}
class ILike implements Like {
@Override
public void lambda ( ) {
System. out. println ( "我是外部实现类1" ) ;
}
}
总结
love = ( int a) - > {
system. out. println ( "i love you-->" + a) ; } ;
} ;
love = ( a) - > {
system. out. println ( "i love you-->" + a) ; } ;
} ;
love = a- > {
system. out. println ( "i love you-->" + a) ;
system. out. println ( "i love you-->too" ) ;
} ;
love = a- > System. out. println ( "i love you-->" + a) ;
lambda表达式只能有一行代码的情况下才能简化成为一行 ,如果有多行,那么就用代码块包裹。 前提是接口为函数式接口 多个参数也可以去掉参数类型,要去掉就都去掉,必须加括号