个人认为~这是java8最大的新特性了。
1.只能应用于函数式接口(使用lambda表达式的时候,接口必须是函数式接口):
//匿名内部类的方式实现,在java8之前,没有lambda表达式
User u = new User(){
@FunctionalInterface
interface User
{
void test();
}
使用lambda表达式:
//():表示参数列表,不需要指定参数的类型,会自动推断u.test();
u.test();
//一个参数可以省略()
User u = x -> {
System.out.println("2221111"+x);
}
u.test();
//带两个参数
User u = (x,y) -> {
System.out.println("2221111"+x);
System.out.println("2221111"+y);
}
u.test();
//返回值
User u = x -> {
x = x+10;
return x;
}
int o = u.test(15);
Lambda表达式可以认为是一种特殊的匿名内部类。
原文:http://my.oschina.net/u/2265860/blog/507717