q7goodies事例_Java 8 Friday Goodies:java.io终于成功了!

q7goodies事例

在Data Geekery ,我们喜欢Java。 而且,由于我们真的很喜欢jOOQ的流畅的API和查询DSL ,我们对Java 8将为我们的生态系统带来什么感到非常兴奋。 我们已经写了一些关于Java 8好东西的博客 ,现在我们觉得是时候开始一个新的博客系列了,……

Java 8星期五

每个星期五,我们都会向您展示一些不错的教程风格的Java 8新功能,这些功能利用了lambda表达式,扩展方法和其他出色的功能。 您可以在GitHub上找到源代码 。

Java 8 Goodie:带有Lambdas的java.io

与文件系统进行交互在Java中有些痛苦。 CTMMC向我们展示了如何使用Java复制文件的示例 。 尽管仍然存在一些问题,至少,我们现在可以使用lambda和新的Streams API 遍历文件系统并列出文件 ! 这是我们已推送到GitHub存储库的FileFilterGoodies示例:

public class FileFilterGoodies {public static void main(String args[]) {listRecursive(new File("."));}/*** This method recursively lists all* .txt and .java files in a directory*/private static void listRecursive(File dir) {Arrays.stream(dir.listFiles((f, n) ->!n.startsWith(".")&&(f.isDirectory()||  n.endsWith(".txt")||  n.endsWith(".java")))).forEach(unchecked((file) -> {System.out.println(file.getCanonicalPath().substring(new File(".").getCanonicalPath().length()));if (file.isDirectory()) {listRecursive(file);}}));}/*** This utility simply wraps a functional* interface that throws a checked exception* into a Java 8 Consumer*/private static <T> Consumer<T>unchecked(CheckedConsumer<T> consumer) {return t -> {try {consumer.accept(t);}catch (Exception e) {throw new RuntimeException(e);}};}@FunctionalInterfaceprivate interface CheckedConsumer<T> {void accept(T t) throws Exception;}
}

上面程序的输出是:

\jOOQ's Java 8 Goodies.iml
\LICENSE.txt
\out
\out\production
\out\production\jOOQ's Java 8 Goodies
\out\production\jOOQ's Java 8 Goodies\org
\out\production\jOOQ's Java 8 Goodies\org\jooq
\out\production\jOOQ's Java 8 Goodies\org\jooq\java8
\out\production\jOOQ's Java 8 Goodies\org\jooq\java8\goodies
\out\production\jOOQ's Java 8 Goodies\org\jooq\java8\goodies\io
\out\production\jOOQ's Java 8 Goodies\org\jooq\java8\goodies\io\FileFilterGoodies$CheckedConsumer.class
\out\production\jOOQ's Java 8 Goodies\org\jooq\java8\goodies\io\FileFilterGoodies.class
\README.txt
\src
\src\org
\src\org\jooq
\src\org\jooq\java8
\src\org\jooq\java8\goodies
\src\org\jooq\java8\goodies\io
\src\org\jooq\java8\goodies\io\FileFilterGoodies.java

现在,这真的很棒,不是吗? 让我们分解上面的listRecursive()方法:

// With this method, we wrap the File[] array
// into a new Java 8 Stream, which has awesome
// new methods.
Arrays.stream(// The Java 1.2 File.listFiles() method luckily
// accepts a @FunctionalInterface, which can be
// instantiated using a lambda expression
// ...
// In this example, we'll just ignore the fact
// that listFiles can return nulldir.listFiles((f, n) ->!n.startsWith(".")&&(f.isDirectory()||  n.endsWith(".txt")||  n.endsWith(".java"))))// Each Stream (and also java.util.List) has this
// awesome forEach method, that accepts a Consumer.forEach(// Unfortunately, Java 8 Consumers don't allow
// throwing checked exceptions. So let's quickly
// wrap it (see details below) ...unchecked(// ... and pass another lambda expression to it,
// which prints the local path and recurses(file) -> {System.out.println(file.getCanonicalPath().substring(new File(".").getCanonicalPath().length()));if (file.isDirectory()) {listRecursive(file);}}));

下周会有更多好吃的东西

请继续关注下周,当我们向您展示如何在jOOX中使用XML改进Java 8时

参考: Java 8 Friday Goodies:java.io终于成功了! 从我们的JCG合作伙伴 Lukas Eder在JAVA,SQL和JOOQ博客中获得。

翻译自: https://www.javacodegeeks.com/2014/01/java-8-friday-goodies-java-io-finally-rocks.html

q7goodies事例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/344578.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python人脸识别环境搭建_Win10:Python3.6安装face_recognition人脸识别库

face_recognition简介face_recognition是Python的一个开源人脸识别库&#xff0c;支持Python 3.3和Python 2.7。引用官网介绍&#xff1a;Recognize and manipulate faces from Python or from the command line with the worlds simplest face recognition library.安装配置我…

【渝粤教育】电大中专电子商务网站建设与维护 (11)作业 题库

1.目前&#xff0c;阿里巴巴集团旗下主要交易市场不包括哪个&#xff08; &#xff09; A.中国批发交易平台 B.全球批发交易平台 C.中国交易市场 D.国际交易市场 错误 正确答案&#xff1a;左边查询 学生答案&#xff1a;未作答 2.阿里巴巴是于1999年创立的&#xff08; &#…

【渝粤教育】电大中专电子商务网站建设与维护 (9)作业 题库

1.阿里巴巴的创始人是&#xff08; &#xff09; A.丁磊 B.马云 C.马化腾 D.李彦宏 错误 正确答案&#xff1a;左边查询 学生答案&#xff1a;未作答 2.阿里巴巴是于1999年创立的&#xff08; &#xff09;的网上贸易市场平台。 A.企业对企业 B.零售商对消费者 C.企业对零售商 …

AWS re:Invent 2018的5大公告

AWS re&#xff1a;Invent刚刚完成。 这是一个巨大的活动&#xff0c;在拉斯维加斯7家最大的酒店中&#xff0c;有50,000多名与会者&#xff0c;并发布了许多新服务。 无服务器通过新的lambda增强功能和更好的容器支持而继续引起人们的广泛关注。 AWS通过新的“ Outposts”功能…

【渝粤教育】电大中专药事管理与法规作业 题库

1.根据《执业药师职业资格制度规定》&#xff0c;取得药学类相关专业大专学历&#xff0c;报考执业药师考试&#xff0c;要求在药学或中药学岗位工作的年限为&#xff08; &#xff09;。 A.5年 B.4年 C.3年 D.6年 错误 正确答案&#xff1a;左边查询 学生答案&#xff1a;A 2.…

添加右键菜单_如何在Windows文件夹的右键菜单中添加“打开PowerShell”

原文&#xff1a;https://www.howtogeek.com/165268/how-to-add-open-powershell-here-to-the-context-menu-in-windows/如果您喜欢使用Windows PowerShell而不是命令提示符&#xff0c;那么您可能喜欢从右键单击Windows中的文件夹时得到的上下文菜单中直接访问它。以下是如何做…

【渝粤教育】电大中专计算机使用基础_1作业 题库

下列类型的软件中&#xff0c;功能没有任何限制且又不需要付费的是&#xff08;&#xff09;。 A共享软件 B正版软件 C免费软件 D试用软件 错误 正确答案&#xff1a;左边查询 学生答案&#xff1a;B 2在常见的软件版本号中,Professional表示()。 A测试版 B专业版 C家庭版 D免费…

【渝粤教育】电大中专计算机职业素养_1作业 题库

1曾经的一项调查发现一些企业业绩不好&#xff0c;客户流失的最重要的原因是&#xff08;&#xff09;。 A企业产品价格不好 B企业员工素养达不到要求 C企业产品质量问题 D企业管理问题 错误 正确答案&#xff1a;左边查询 学生答案&#xff1a;A 2职业素养是人类在社会活动中要…

github 公钥 私钥_理解公钥与私钥

一直都对公钥和私钥的概念不清不楚&#xff0c;以至于在 腾讯面试 被问到“如何在一个不安全的环境中实现安全的数据通信&#xff1f;”时&#xff0c;并没有答上来。今天查阅了一些资料&#xff0c;决定写一篇总结文章来加深自己的理解。一、公钥算法与私钥算法1、私钥算法私钥…

多云系统的授权

这是我目前正在致力于消耗SPIFFE&#xff08; 安全生产身份框架 &#xff08;Every Production Identity Framework For Everyone &#xff09;在WSO2的Prabath Siriwardena先生的启发下&#xff0c;在Moratuwa大学的Gihan Dias教授的指导下&#xff0c;通过信任和身份验证在动…

【渝粤教育】电大中专跨境电子商务理论与实务 (28)作业 题库

1.跨境电子商务对接“中国制造”激活了“买卖全球”&#xff0c;而与跨境电商联合则成为“中国制造”在全球崛起的重要支点。该说法&#xff08; &#xff09; A.正确 B.错误 错误 正确答案&#xff1a;左边查询 学生答案&#xff1a;B 2.京东海外购的运营模式是&#xff08; &…

级联选择组件_如何开发一个 Antd 级联多选控件

本文也同步发在掘金上, https:// juejin.cn/post/69149942 41940750343 Intro 这篇文章将从零开始介绍如何开发一个 Antd 的级联多选选择器。先看效果: Github,Sandbox 阅读完这篇文章,不仅可以学会如何实现级联多选的功能,还可以顺便学会: 如何发布一个 Typescript 编写…

python安卓自动化测试工具有哪些_Android 手机自动化测试工具有哪几种?

如今自动化测试已经应用到每天的测试中。这不足为奇&#xff0c;因为自动化测试在测试过程中节约了时间&#xff0c;还能避免包括人为因素造成的测试错误和遗漏。自动化测试工具选择很多。一些是开源的&#xff0c;一些非常贵。一些自动化工具是几年前出的,一些才在市场上出来。…

通过Spring Integration消费Twitter Streaming API

1.概述 众所周知&#xff0c; Spring Integration具有用于与外部系统交互的大量连接器。 Twitter也不例外&#xff0c;而且很长一段时间以来&#xff0c;因为Spring Social一直是一个开箱即用的解决方案&#xff0c;Spring Integration利用该解决方案来连接到社交网络。 1.1Sp…

mysql5.6 1g内存_1G内存用MySQL5.6还是用MySQL5.5比较好

mysql的50版本和51版本的区别&#xff1a;一、5.0 增加了stored procedures、views、cursors、triggers、xa transactions的支持&#xff0c;增加了inforation_schema系统数据库。二、5.1 增加了event scheduler&#xff0c;partitioning&#xff0c;pluggable storage engine …

java aspectj_Java:AspectJ的异常翻译

java aspectj在这篇博客文章中&#xff0c;我描述了如何使用AspectJ自动将一种异常类型转换为另一种异常类型。 问题 有时&#xff0c;我们处于必须将异常&#xff08;通常由第三方库引发&#xff09;转换为另一种异常的情况。 假设您正在使用像hibernate这样的持久性框架&…

mysql5.6.33安装教程_Linux下mysql5.6.33安装配置教程

本教程为大家分享了mysql5.6.33在linux下的安装配置方法&#xff0c;供大家参考&#xff0c;具体内容如下1、下载下载地址&#xff1a;http://dev.mysql.com/downloads/mysql/5.6.html#downloads下载版本&#xff1a;我这里选择的5.6.33&#xff0c;通用版&#xff0c;linux下6…

【渝粤教育】广东开放大学 劳动关系理论与实务 形成性考核 (1)

选择题 题目&#xff1a; 劳动关系的主体是&#xff08; &#xff09;。 答案&#xff1a;看左侧 题目&#xff1a; 主要研究企业对员工的管理政策、策略和实践的学派被称为&#xff08; &#xff09;。 答案&#xff1a;看左侧 题目&#xff1a; 工会以&#xff08;…

【渝粤教育】广东开放大学 土木工程测量 形成性考核 (45)

选择题 题目&#xff1a;地面点沿法线方向至参考椭球面的距离称为该点的&#xff08;&#xff09; 题目&#xff1a;地面点沿铅垂线方向至大地水准面的距离称为该点的&#xff08;&#xff09; 题目&#xff1a;我国目前采用的高程基准是 题目&#xff1a;象限角的取值范围 题目…

基于表达式的访问控制

1.概述 今天&#xff0c;我们将回顾基于表达式的访问控制&#xff08;EBAC&#xff09;&#xff0c;基于角色的访问控制&#xff08;RBAC&#xff09;和基于属性的访问控制&#xff08;ABAC&#xff09;之间的区别&#xff0c;并将重点放在EBAC上。 2.什么是基于表达式的访问控…