java基础---->java8中的函数式接口
这里面简单的讲一下java8中的函数式接口,Function
、Consumer
、Predicate
和Supplier
。
Function:接受参数,有返回参数
package com.linux.huhx.function;
import java.util.function.Function;
public class FunctionDemo {
private static int operateValue(int value, Function<Integer, Integer> function) {
return function.apply(value);
}
private static int operateValue(int value, Function<Integer, Integer> srcFunc, Function<Integer, Integer> destFunc) {
return srcFunc.andThen(destFunc).apply(value);
}
public static void main(String[] args) {
int value = 10;
int innerResult = operateValue(value, new Function<Integer, Integer>() {
@Override
public Integer apply(Integer t) {
return 20 + t;
}
});
System.out.println(innerResult); // 30
int lambdaResult = operateValue(value, t -> t + 20);
System.out.println(lambdaResult); // 30
int andThenResult = operateValue(value, val -> val + 20, val -> val + 30);
System.out.println(andThenResult); // 60
}
}
Consumer:接受参数,没有返回
package com.linux.huhx.function;
import java.util.function.Consumer;
public class ConsumerDemo {
private static void printValue(String value, Consumer<String> consumer) {
consumer.accept(value);
}
public static void main(String[] args) {
printValue("huhx", s -> System.out.println(s.toUpperCase())); // HUHX
}
}
Predicate:接受参数,返回boolean
package com.linux.huhx.function;
import java.util.function.Predicate;
public class PredicateDemo {
private static boolean predicateValue(int value, Predicate<Integer> predicate) {
return predicate.test(value);
}
public static void main(String[] args) {
System.out.println(predicateValue(17, x -> x >= 18)); // false
}
}
Supplier:不接受参数,有返回值
package com.linux.huhx.function;
import java.util.function.Supplier;
import org.springframework.util.StringUtils;
public class SupplierDemo {
private static String getOrDefault(String value, Supplier<String> supplier) {
return StringUtils.isEmpty(value) ? supplier.get() : value;
}
public static void main(String[] args) {
String name = "";
System.out.println(getOrDefault(name, () -> "huhx")); // huhx
}
}
作者:
huhx
出处: www.cnblogs.com/huhx
格言:你尽力了,才有资格说自己的运气不好。
版权:本文版权归作者huhx和博客园共有,欢迎转载。未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
出处: www.cnblogs.com/huhx
格言:你尽力了,才有资格说自己的运气不好。
版权:本文版权归作者huhx和博客园共有,欢迎转载。未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。