当前位置: 首页 > news >正文

网站布局选择临淄信息网手机版

网站布局选择,临淄信息网手机版,网站建设帮助中心,好口碑自适应网站建设我最近阅读了Brian Goetz的《 Lambda的状况》 #xff0c;在阅读了该文章之后#xff0c;我想尝试使用Java 8 Lambda表达式。 Brian在他的文章中继续描述了将一种方法称为“功能”接口的接口。 功能接口几乎总是用作匿名类#xff0c;其中ActionListener是规范示例。 这些“… 我最近阅读了Brian Goetz的《 Lambda的状况》 在阅读了该文章之后我想尝试使用Java 8 Lambda表达式。 Brian在他的文章中继续描述了将一种方法称为“功能”接口的接口。 功能接口几乎总是用作匿名类其中ActionListener是规范示例。 这些“功能性”界面是lambda表达式的最初目标主要目标是删除许多使用它们的样板或仪式。 当我在Guava库上编写系列文章时立即想到了Function接口它是尝试使用lambda表达式的主要候选对象。 我的目标很简单从我的Guava Futures博客中进行单元测试它大量使用Function接口并将其转换为使用lambda表达式。 虽然我将介绍与所举示例有关的lamba表达式的结构但本文并非是有关Java 8 lambda表达式的教程。 而是记录了我在Java中使用lambda表达式的首次尝试。 Lambda表达式 第一个示例是对Futures.chain方法的测试该方法将Function作为参数之一 FunctionListString, ListenableFutureListPerson queryFunction new FunctionListString, ListenableFutureListPerson() {Overridepublic ListenableFutureListPerson apply(final ListString ids) {return dbService.getPersonsByIdAsync(ids);}};ListenableFutureListString indexSearch luceneSearcher.searchAsync(firstName:martin); ListenableFutureListPerson results Futures.chain(indexSearch,queryFunction,executorService); 使用lamba表达式现在看起来像 FunctionListString, ListenableFutureListPerson queryFunction ids -(dbService.getPersonsByIdAsync(ids));ListenableFutureListString indexSearch luceneSearcher.searchAsync(firstName:martin);ListenableFutureListPersonresults Futures.chain(indexSearch, queryFunction,executorService); 请记住在上面的代码示例中两个突出显示的部分是等效的。 让我们看一下第2行并说明它如何与第一个代码示例中的1-7行匹配 ids是apply方法的输入并且对应于第一个代码示例中第4行的final ListString ids参数。 lamba表达式的类型是从使用它的上下文中推断出来的因此我们不需要为ids参数重复它们。 然后是箭头-令牌它是当前形式的Java 8 lambda表达式的常规语法的一部分 然后我们得到了lambda的主体dbService.getPersonsByIdAsyncids该主体是一个方法调用该方法返回一个ListenableFuture进而产生一个Person对象列表。 请注意我们不必放入return语句因为这是一个表达式可以求值并返回。 下一个示例是测试中的实用程序方法该方法通过将匿名Callable实例传递到ExecutorService中来返回ListenableFutures private ListenableFutureListPerson getPersonsByFirstNameFuture(final String firstName, final boolean error) { return executorService.submit(new CallableListPerson() {Overridepublic ListPerson call() throws Exception {startSignal.await();if (error) {throw new RuntimeException(Ooops!);}ListString ids luceneSearcher.search(firstName: firstName);return dbService.getPersonsById(ids);}}); } 这是使用lambda表达式的等效项 private ListenableFutureListPerson getPersonsByFirstNameFuture(final String firstName, final boolean error) {return executorService.submit(() - {startSignal.await();if (error) {throw new RuntimeException(Ooops!);}ListString ids luceneSearcher.search(firstName: firstName);return dbService.getPersonsById(ids);}); } 在此示例中没有输入参数因此表达式在第2行以空括号开头。存在-标记但是在此示例中主体包含由{…}包围的多个语句。 由于存在多个语句因此在第7行需要显式return语句。 运行Java 8的环境 我当前的笔记本电脑是MacBook Pro因此我需要设置一个环境以运行具有lambda支持的Java 8。 这是我采取的步骤 在VirtualBox上安装了LinuxMint 12。 创建一个目录并与LinuxMint来宾共享 安装了Java 8的开发人员预览版 。 为了从现有的maven项目中获取源代码并测试源代码我运行了mvn jar:jar jar:test-jar并将生成的jar文件放在共享目录中 将所有依赖项放在共享目录中guavaluceneh2和junit 重新编写单元测试以使用lambda并从命令行运行新测试 结论 尽管要发布支持lambda的Java 8尚需时日但开发人员预览版中提供的功能似乎很有希望。感谢您的时间一如既往地欢迎提出意见和建议 资源资源 Lambda的状态第4部分 Java 8开发人员预览 这篇文章的源代码 番石榴项目首页 Guava博客系列的源代码 参考来自我们的JCG合作伙伴 Bill Bejeck的Guava FunctionsJava 8 Lambdas来自“ 随机编码思考”博客。 翻译自: https://www.javacodegeeks.com/2012/11/guava-functions-java-8-lambdas.html
http://www.zqtcl.cn/news/686058/

相关文章:

  • 具体的网站建设方案网页程序开发采购
  • 泉州 网站建设苏州网站外包
  • 网站做404页面怎么做网站开发过程的基本环节
  • 做网站是前端还是后端小程序网站模板
  • 学校网站建设与维护建设银行官网电话
  • dedecms网站地图修改软件开发公司规章制度
  • 大型旅游网站骏驰网站开发
  • 有心学做网站两学一做知识竞赛试题网站
  • 西宁圆井模板我自己做的网站怎么做网站能快速赚钱
  • 根据网站集约化建设的要求直流分公司四川建设部网站
  • 网站优化平台有哪些遵义网站开发的公司有哪些
  • 推荐一下网站谢谢微盟微商城怎么样
  • 网站建设的技术指标网站做好第二年要多少钱
  • 工业设计东莞网站建设WordPress网络功能
  • 网站pv多少可以企业网站托管常见问题
  • 深圳有哪些网站建设沈阳做机床的公司网站
  • 2022年网站能用的wordpress 客户端使用
  • 社交网站建设内容如何制作橡皮泥 简单
  • 简述网站的制作流程wordpress定制分类
  • 如何自建购物网站wordpress文章编辑插件
  • 网站策划机构建筑网站、
  • 邹平做网站的公司标志设计图片大全简单
  • 广东省建设厅官方网站多少钱如何在虚拟机里面做网站
  • 上海免费网站建设模板做网站页面的软件
  • 做折页的网站个人网站有哪些
  • 服装网站建设内容wordpress媒体库只能列表
  • 北京好的做网站的公司东莞专业做淘宝网站
  • 网站结构怎么优化wordpress文章列表添加字段
  • 网站建设框架图长沙官网seo技术厂家
  • 电子商务网站建设主管的策划案html个人网站设计模板