1.什么是匿名类
匿名类是不能有名字的类,它们不能被引用,只能在创建时用New语句来声明它们。匿名类的声明是在编译时进行的,实例化在运行时进行,这意味着for循环中的一个new语句会创建相同匿名类的几个实例,而不是创建几个不同匿名类的一个实例。
2.匿名类写法
IMyFunction iMyFunction = new IMyFunction() {
@Override
public Object getValue(Object value) {
return null;
}
};
3.Lambda写法
IntFunction function = (o) -> {
return null;
};
Lambda表达式只能针对函数式接口使用(函数式接口:接口里只有一个抽象方法),使用注解(@FunctionalInterface)可以强制接口是函数式接口。
Lambda 表达式由三个部分组成:第一部分为一个括号内用逗号分隔的形式参数,参数是函数式接口里面方法的参数;第二部分为一个箭头符号:->;第三部为方法体,可以是表达式和代码块。