概念与定义
@FunctionalInterface
public interface Functional {
public abstract void method();
}
函数式接口的使用
一般可以作为方法的参数和返回值类型
public class Impl{
public static void show(FunctionalInter fin){
System.out.println("重写inter的类");
}
public static void main(String[] args) {
show(new FunctionalClass()); //实现类对象
show(new FunctionalInter() {
@Override
public void show() {
System.out.println("匿名内部类");
}
});
show(()->System.out.println("Lambda表达式")); //Lambda程序只有一行时候可以省略里面的分号,大括号还有return
}
}
Lambda优化日志
使用Lambda的好处就是,只会传参,只在条件成立的时候才计算需要返回的值
public interface LambdaInter {
public abstract String messageBuilder();
}
public class LambdaImpl {
public static void showLog(int level, LambdaInter lamInter) {
if(level == 1) {
System.out.println(lamInter.messageBuilder());
}
}
public static void main(String[] args) {
String str1 = "小新";
String str2 = "妮妮";
String str3 = "风间";
showLog(1, ()->str1 + str2 + str3);
}
}