如果你的需求需要匿名类来实现,例如是一个只有一个方法的接口,那么匿名类的语法可能看起来比较笨拙和不清晰,尽管匿名类比命名类更简洁,但对于只有一个方法的类来说,即使是匿名类也显得有些麻烦。还有在一些情况下,需要将功能作为参数传递给另一个方法,例如当有人单击页面上按钮时应该采取什么操作,javascript可以通过闭包实现。在java语言中,lambda表达式能够将功能视为方法参数,或将代码视为数据,而且lambda表达式可以更紧凑地表达单方法类的实例,在Swing编程和集合(Collections)编程中优势很明显。