java基础---->java8中的函数式接口
2024-08-21 07:39:03
这里面简单的讲一下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 = ;
int innerResult = operateValue(value, new Function<Integer, Integer>() {
@Override
public Integer apply(Integer t) {
return + t;
}
});
System.out.println(innerResult); // int lambdaResult = operateValue(value, t -> t + );
System.out.println(lambdaResult); // int andThenResult = operateValue(value, val -> val + , val -> val + );
System.out.println(andThenResult); //
}
}
二、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(, x -> x >= )); // 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
}
}
友情链接
最新文章
- 苹果强制使用HTTPS传输了怎么办?——关于HTTPS,APP开发者必须知道的事
- JavaScript基础知识总结(二)
- Google Play Store —与google服务器通信时出现问题
- ECSHOP MYSQL 公用类库中的autoExecute方法
- MVC中的JS和CSS压缩
- investopedia level 2
- 转发 eclipse 取消javascript 验证
- define 实例
- Linux下安装MySQL数据库以及用C语言编程存取数据库
- Media层
- DDD理论学习系列(9)-- 领域事件
- Swift 3.0在集合类数据结构上的一些新变化
- pig简单的代码实例:报表统计行业中的点击和曝光量
- js或jquery实现点击某个按钮或元素显示div,点击页面其他任何地方隐藏div
- maven生成项目慢解决办法
- 如何引入iconfont图标与Element-UI组件
- 从xampp到phpmyadmin
- 第73节:Java中的HTTPServletReauest和HTTPServletResponse
- Centos Linux 下Pycharm 安装
- Javascript高级编程学习笔记(7)—— 函数