千家信息网

怎么使用java8中双冒号

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,本篇内容主要讲解"怎么使用java8中双冒号",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么使用java8中双冒号"吧!代码其实很简单:以前的代码一般是
千家信息网最后更新 2025年01月20日怎么使用java8中双冒号

本篇内容主要讲解"怎么使用java8中双冒号",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么使用java8中双冒号"吧!

代码其实很简单:

以前的代码一般是如此的:

public class AcceptMethod { public static void printValur(String str){ System.out.println("print value : "+str); } public static void main(String[] args) { List al = Arrays.asList("a","b","c","d"); for (String a: al) { AcceptMethod.printValur(a); } //下面的for each循环和上面的循环是等价的 al.forEach(x->{ AcceptMethod.printValur(x); }); }}

现在JDK双冒号是:

public class MyTest { public static void printValur(String str){ System.out.println("print value : "+str); } public static void main(String[] args) { List al = Arrays.asList("a", "b", "c", "d"); al.forEach(AcceptMethod::printValur); //下面的方法和上面等价的 Consumer methodParam = AcceptMethod::printValur; //方法参数 al.forEach(x -> methodParam.accept(x));//方法执行accept }}

上面的所有方法执行玩的结果都是如下:

print value : aprint value : bprint value : cprint value : d

在JDK8中,接口Iterable 8中默认实现了forEach方法,调用了 JDK8中增加的接口Consumer内的accept方法,执行传入的方法参数。

JDK源码如下:

/** * Performs the given action for each element of the {@code Iterable} * until all elements have been processed or the action throws an * exception. Unless otherwise specified by the implementing class, * actions are performed in the order of iteration (if an iteration order * is specified). Exceptions thrown by the action are relayed to the * caller. * * @implSpec *

The default implementation behaves as if: *

{@code * for (T t : this) * action.accept(t); * }
* * @param action The action to be performed for each element * @throws NullPointerException if the specified action is null * @since 1.8 */ default void forEach(Consumer action) { Objects.requireNonNull(action); for (T t : this) { action.accept(t); } }

另外补充一下,JDK8改动的,在接口里面可以有默认实现,就是在接口前加上default,实现这个接口的函数对于默认实现的方法可以不用再实现了。类似的还有static方法。现在这种接口除了上面提到的,还有BiConsumer,BiFunction,BinaryOperation等,在java.util.function包下的接口,大多数都有,后缀为Supplier的接口没有和别的少数接口。

到此,相信大家对"怎么使用java8中双冒号"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

方法 接口 冒号 面的 代码 内容 参数 等价 学习 循环 实用 更深 不用 兴趣 函数 后缀 实用性 实际 就是 操作简单 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 开发软件什么情况下需要服务器 市南区安卓软件开发企业 sql兼容各种数据库 金山区营销软件开发销售方法 维护两会期间网络安全 网络安全海报展示架 跨数据库搜索数据的工具 辩论网络安全不重要 虹口区项目软件开发信息中心 自己的域名服务器 高清点播服务器服务最那个地方 大华磁盘阵列与服务器不同步 基金 网络安全法 杭州设计软件开发 企信联盟(苏州)软件开发 天基互联网概念股万润科技 构造网络安全校园手抄报 数据库记录文件存在哪里 优化跨境电商平台网络安全技术 数据库怎么设置取值限制 数据库图片保存 软件开发与测试方向介绍 ptr测试服无法连接服务器 漯河协同软件开发有限公司 在ntp客户端服务器模式下 比亚迪嵌入式软件开发工程师 tcag数据库 重庆交易软件开发中心 质量网络技术服务怎么样 网络安全小组组名凸显安全
0