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

廊坊网站制作报价知名的电子商务网站

廊坊网站制作报价,知名的电子商务网站,北京海淀区房价2022最新价格,wordpress 禁止 字体java 8 lambda什么是project lambda #xff1a;Project lambda是用于以Java语言语法启用lambda表达式的项目。 Lambda表达式是功能编程语言#xff08;如lisp#xff09;中的主要语法。 Groovy将是支持lambda表达式#xff08;也称为闭包#xff09;的java的最接近亲戚。… java 8 lambda 什么是project lambda Project lambda是用于以Java语言语法启用lambda表达式的项目。 Lambda表达式是功能编程语言如lisp中的主要语法。 Groovy将是支持lambda表达式也称为闭包的java的最接近亲戚。 那么什么是lambda表达式 它是一块代码块可以像分配任何其他数据一样将其分配给变量或作为参数传递给方法或作为参数传递给另一个lambda表达式。 该代码也可以在需要时被调用。 在Java中支持此功能的主要动机是在使用某些需要API用户提供一些代码的API时删除了许多样板代码但由于Java的语法要求最终使用了内部类。 最常见的此类API是Java线程API我们需要能够告诉该API在新线程中执行哪些代码但最终实现了Runnable。 该规范仍在开发中并且正在不断变化。 本文只是给出了一个关于期望的想法。 功能接口 Java规范开发人员几乎从未希望修改JVM规范这种情况也不例外。 因此他们以某种方式制定规范以便可以在不对JVM进行任何修改的情况下实现lambda。 因此您可以使用源版本1.8和目标版本1.5轻松编译类。 因此lambda代码将保留在匿名类的实现中该匿名类实现的接口只有一个方法。 很好不完全是该接口可以有多个方法但是它必须可由仅定义一个方法的类实现。 我们将这种接口称为功能接口。 以下是功能接口的一些示例。 //A simple case, only one method //This is a functional interface public interface Test1{public void doSomething(int x); }//Defines two methods, but toString() is already there in //any object by virtue of being subclass of java.lang.Object //This is a functional interface public interface Test2{public void doSomething(int x);public String toString(); }//The method in Test3 is override compatible with //the method in Test1, so the interface is still //functional public interface Test3 extends Test1{public void doSomething(int x); }//Not functional, the implementation must //explicitly implement two methods. public interface Test4 extends Test1{ public void doSomething(long x); } Lambda表达式 在Java 8中lambda表达式只是使用匿名类实现功能接口的不同语法。 语法确实比创建匿名类的语法简单得多。 语法主要是这种形式 argumentsList-正文 argumentsList就像Java方法参数列表一样-用逗号分隔并括在括号中但有一个例外-如果只有一个参数则括号是可选的。 提及参数的类型也是可选的。 如果未指定类型则将推断它们。 主体可以有两种类型-表达式主体和代码块主体。 表达式主体只是返回值的有效Java表达式。 就像方法主体一样代码块主体包含一个代码块。 代码块主体具有与方法主体相同的语法包括必需的大括号。 以下示例显示如何使用lambda语法实现新线程。 //The thread will keep printing Hello new Thread(() - { while(true){ System.out.println(Hello); }}).start(); 下面的示例显示了表达式语法 public interface RandomLongs{public long randomLong(); }RandomLongs randomLongs () - ((long)(Math.random()*Long.MAX_VALUE)); System.out.println(randomLongs.randomLong()); 泛型和lambda 但是如果我们想使用lambda实现泛型方法呢 规范开发人员提出了一种不错的语法即在类型参数之前声明类型参数。 下面显示了一个示例– public interface NCopies{public T extends Cloneable ListT getCopies(T seed, int num); }//Inferred types for arguments also supported for generic methods NCopies nCopies T extends Cloneable (seed, num) - { ListT list new ArrayList(); for(int i0; inum; i) list.add(seed.clone()); return list;}; 需要注意的一点 lambda表达式实现的实际接口和方法取决于使用它的上下文。 可以通过存在赋值操作或通过在方法调用中传递参数来设置上下文。 没有上下文lambda是没有意义的因此直接在lambda表达式上直接调用方法是不正确的。 例如以下内容将给出编译错误– public interface NCopies{public T extends Cloneable ListT getCopies(T seed, int num); }//This code will give a compilation error, //As the lambda is meaningless without a context (T extends Cloneable (seed, num) - { ListT list new ArrayList(); for(int i0; inum; i) list.add(seed.clone()); return list;}).getCopies(new CloneableClass(), 5);However, the following would be perfectly alright, because there is an assignment context for the lambda. NCopies nCopies T extends Cloneable (seed, num) - { ListT list new ArrayList(); for(int i0; inum; i) list.add(seed.clone()); return list;};nCopies.getCopies(new CloneableClass(), 5); 精简的lambda Lisp对lambda的支持比这要灵活得多。 整个lisp语言都基于lambda。 但是java必须限制语法以使其适合自己的语法。 此外lisp是一种解释型语言具有在所有信息可用时在运行时执行操作的优势。 Java是一种编译语言它必须遵守更为严格的类型和控制流等规则以免在运行时产生意外。 考虑到这一点在Java 8中精简的lambda看起来并不那么糟糕。 参考 Java 8中的烹饪方法–来自JCG合作伙伴的 Lambda项目   极客文章博客上的Debasish Ray Chawdhuri。 翻译自: https://www.javacodegeeks.com/2012/02/whats-cooking-in-java-8-project-lambda.htmljava 8 lambda
http://www.pierceye.com/news/179798/

相关文章:

  • ppt模板免费下载网站哪个好克拉玛依市住房和建设局网站
  • 制作网站得多少钱交互设计留学
  • 理财网站免费建设经典重庆新闻论坛
  • 南京专业网站制作哪家好企业所得税交多少
  • 广西网站建设哪家好常熟做网站的
  • 礼品网站制作辽宁省建设部网站
  • 网站群的建设目标澧县网页设计
  • 邯郸网站建设在哪里网站建设yingkagou
  • 姜堰区网站建设企业公司网站制作
  • 目前做的比较好的法律网站有哪些兰州seo技术优化排名公司
  • wordpress网站接入qqwordpress调用二级分类目录
  • 自建站有哪些站点soho 网站建设
  • cms网站建设如果在网上接网站建设项目
  • 建设网站的重点与难点在于社区网站模版
  • 自己在线制作logo免费网站公司网页设计教程
  • 广西城乡建设网站一家企业如何做网站推广
  • 小程序可以做网站吗wordpress 活动插件
  • 深圳网站建设流程图货代网站制作
  • 建设一个网站需要什么技术人员在线音乐网站开发
  • 做现货黄金看什么网站网络服务商怎么查询
  • 英语作文网站紫色个人网站模板
  • 视频直播网站开发 设计网站做的文字乱码
  • 江苏省建设执业中心网站wordpress婚礼模板下载
  • 互联网网站开发html5怎么做网站可以注册的
  • 公司网站建设前期方案经典设计产品
  • 南昌市公司网站建设品牌建设浅谈
  • 网站实现留言功能吗制作视频用什么app
  • 聊城企业网站建设公司网页版wordpress教程视频
  • 网上购物的网站开发背景wordpress more标签使用教程
  • 多语言网站建设方案新建网站的价格