参照博客 https://mp.weixin.qq.com/s/UFiDL6zGN4gyGNPuESgF2w
http://www.importnew.com/16436.html
lambda 表达式的具体形式为:()->{}
箭头表达式->将Lambda表达式分为左右两部分,左侧为参数列表,右侧为具体实现,即Lambda体
具体 为
参数类型可忽略 若写 所有的参数类型都要写,若不写,可以根据类型推断
2.参数仅有一个時() 可以省略
3.Lambda 体只有一条语句時,return 和{} 都可以忽略
2 java8 内置四大核心函数式接口(java.util.function.* 包)
1.
public static void consumer(String str, Consumer<String> function) {
function.accept(str);
}
function.accept(str);
}
public static void main(String[] args) {
String str = "str";
consumer(str, s -> System.out.println(s));
}
String str = "str";
consumer(str, s -> System.out.println(s));
}
Supplier
供给型接口
public static void main(String[] args) {
supplier(() -> "str");
}
public static String supplier(Supplier<String> function) {
return function.get();
}
supplier(() -> "str");
}
public static String supplier(Supplier<String> function) {
return function.get();
}
Function
函数型接口public static void main(String[] args) {
String str = "str";
function(str, s -> s);
}
public static String function(String str, Function<String, String> function) {
return function.apply(str);
}
Predicate
断定型接口
public static void main(String[] args) {
String str = "str";
predicate(str, s -> s.isEmpty());
}
public static boolean predicate(String str, Predicate<String> function) {
return function.test(str);
}
String str = "str";
predicate(str, s -> s.isEmpty());
}
public static boolean predicate(String str, Predicate<String> function) {
return function.test(str);
}