网站建设方案如何写如何写手机app程序

web/2025/10/4 22:51:27/文章来源:
网站建设方案如何写,如何写手机app程序,怎么提高网站打开速度,网站建设是程序员吗Java8实战-总结11 Lambda表达式方法引用管中窥豹如何构建方法引用 构造函数引用 Lambda表达式 方法引用 方法引用让你可以重复使用现有的方法定义#xff0c;并像Lambda一样传递它们。在一些情况下#xff0c;比起使用Lambda表达式#xff0c;它们似乎更易读#xff0c;感… Java8实战-总结11 Lambda表达式方法引用管中窥豹如何构建方法引用 构造函数引用 Lambda表达式 方法引用 方法引用让你可以重复使用现有的方法定义并像Lambda一样传递它们。在一些情况下比起使用Lambda表达式它们似乎更易读感觉也更自然。下面就是借助更新的Java 8 API,用方法引用写的一个排序的例子 先前 3 inventory.sort((Apple a1, Apple a2) - a1.getWeight().compareTo(a2.getWeight()));之后(使用方法引用和java.util.Comparator.comparing): inventory.sort (comparing(Apple::getWeight));管中窥豹 为什么应该关心方法引用?方法引用可以被看作仅仅调用特定方法的Lambda的一种快捷写法。它的基本思想是如果一个Lambda代表的只是“直接调用这个方法”,那最好还是用名称来调用它而不是去描述如何调用它。事实上方法引用就是让你根据已有的方法实现来创建Lambda表达式。但是显式地指明方法的名称代码的可读性会更好。它是如何工作的呢?当需要使用方法引用时目标引用放在分隔符::前方法的名称放在后面。例如Apple::getWeight就是引用了Apple类中定义的方法getWeight。请记住不需要括号因为没有实际调用这个方法。方法引用就是Lambda表达式(Apple a) - a.getWeight()的快捷写法。下表给出了Java 8中方法引用的其他一些例子。 可以把方法引用看作针对仅仅涉及单一方法的Lambda的语法糖因为你表达同样的事情时要写的代码更少了。 如何构建方法引用 方法引用主要有三类。 指向静态方法的方法引用(例如Integer的parseInt方法写作Integer::parseInt)。指向任意类型实例方法的方法引用(例如String的length方法写作String::length)。指向现有对象的实例方法的方法引用(假设有一个局部变量expensiveTransaction用于存放Transaction类型的对象它支持实例方法getValue,那么你就可以写expensiveTransaction::getValue)。 第二种和第三种方法引用可能乍看起来有点儿晕。类似于string::length的第二种方法引用的思想就是在引用一个对象的方法而这个对象本身是Lambda的一个参数。例如Lambda表达式(String s) - .toUppeCase()可以写作String::toUpperCase。但第三种方法引用指的是在Lambda中调用一个已经存在的外部对象中的方法。例如Lambda表达式()-expensiveTransaction.getValue()可以写作expensiveTransaction::getValue。依照一些简单的方子就可以将Lambda表达式重构为等价的方法引用如下图所示 请注意还有针对构造函数、数组构造函数和父类调用(super-call)的一些特殊形式的方法引用。举一个方法引用的具体例子吧。比方说想要对一个字符串的List排序忽略大小写。List的sort方法需要一个Comparator作为参数。在前面看到Comparator描述了一个具有(T, T)-int签名的函数描述符。可以利用string类中的compareToIgnoreCase方法来定义一个Lambda表达式(注意compareToIgnoreCase是String类中预先定义的)。 ListString str Arrays.asList(a,b,A,B); str.sort((s1, s2)- s1.compareToIgnorecase(s2));Lambda表达式的签名与Comparator的函数描述符兼容。利用前面所述的方法这个例子可以用方法引用改写成下面的样子 ListString str Arrays.asList(a,b,A,B); str.sort(String::compareToIgnoreCase);请注意编译器会进行一种与Lambda表达式类似的类型检查过程来确定对于给定的函数式接口这个方法引用是否有效方法引用的签名必须和上下文类型匹配。 测验:方法引用 下列Lambda表达式的等效方法引用是什么? (1) PunctionString, Integer stringToInteger (String s) - Integer.parseInt(s);(2)BiPredicatecListString, String contains (list, element) - list.contains(element);答案如下。 (1)这个Lambda表达式将其参数传给了Integer的静态方法parseInt。这种方法接受一个需要解析的String,并返回一个Integer。因此可以使用上图中的办法①(Lambda表达式调用静态方法)来重写Lambda表达式如下所示 FunctionString, Integer stringToInteger Integer::parseInt; (2)这个Lambda使用其第一个参数调用其contains方法。由于第一个参数是List类型的可以使用上图中的办法②,如下所示 BiPredicateListString, String contains List::contains; 这是因为目标类型描述的函数描述符是(ListString, String) - boolean,而List::contains可以被解包成这个函数描述符。到目前为止只展示了如何利用现有的方法实现和如何创建方法引用。但是也可以对类的构造函数做类似的事情。 构造函数引用 对于一个现有构造函数可以利用它的名称和关键字new来创建它的一个引用 ClassName::new。它的功能与指向静态方法的引用类似。例如假设有一个构造函数没有参数。 它适合Supplier的签名() - Apple。可以这样做 //构造函数引用指向默认的Apple()构造函数 SupplierApple c1 Apple::new; Apple a1 c1.get();这就等价于 //调用Supplier的get方法将产生一个新的Apple //利用默认构造函数创建Apple的Lambda表达式 SupplierApple c1 () - new Apple(); Apple a1 c1.get();如果构造函数的签名是Apple(Integer weight),那么它就适合Function接口的签名于是可以这样写 //指向Apple(Integer weight)的构造函数引用 FunctionInteger, Apple c2 Apple::new; //调用该Function函数的apply方法并给出要求的重量将产生一个Apple Apple a2 c2.apply(110);这就等价于 用要求的重量创建一 个Apple的Lambda表 //用要求的重量创建一个Apple的Lambda表达式 FunctioncInteger,Apple c2 (weight)- new Apple(weight); //调用该Punction函数的apply方法并给出要求的重量将产生一个新的Apple对象 Apple a2 c2.apply(110);在下面的代码中一个由Integer构成的List中的每个元素都通过前面定义的类似的map方法传递给了Apple的构造函数得到了一个具有不同重量苹果的List: //将构造函数引用传递给map方法ListInteger weights Arrays.asList(7,3,4,10);ListApple apples map(weights, Apple::new);public static ListApple map(ListInteger list, FunctionInteger, Apple f) {ListApple result new ArrayList();for(Integer e: list) {result.add(f.apply(e));}return result;}如果有一个具有两个参数的构造函数Apple(String color, Integer weight),那么它就适合BiFunction接口的签名于是可以这样写 //指向Apple(String color,Integer weight)的构造函数引用 BiPunctionString, Integer, Apple c3 Apple::new; //调用该BiFunction函数的apply方法并给出要求的颜色和重量将产生一个新的Apple对象 Apple c3 c3.apply(green, 110);这就等价于 //用要求的颜色和重量创建一个Apple的Lambda表达式 BiPunctionString, Integer, Apple c3 (color, weight) - new Apple(color, weight);//调用该BiPunction函数的apply方法并给出要求的颜色和重量将产生一个新的Apple对象 Apple c3 c3.apply(green, 110);不将构造函数实例化却能够引用它这个功能有一些有趣的应用。例如可以使用Map来将构造函数映射到字符串值。创建一个giveMeFruit方法给它一个String和一个Integer,它就可以创建出不同重量的各种水果 static MapString, FunctionInteger, Fruit map new HashMap(); static {map.put(apple, Apple::new);map.put(orange, Orange::new);// etc... }//用map得到了一个FunctionInteger, Fruit public static Fruit giveMeFruit(String fruit, Integer weight) {//用Integer类型的weight参数调用Function的apply()方法将提供所要求的Fruitreturn map.get(fruit.toLowercase()).apply(weight); } 测验:构造函数引用 已经看到了如何将有零个、一个、两个参数的构造函数转变为构造函数引用。那要怎么样才能对具有三个参数的构造函数比如Color(int,int,int),使用构造函数引用呢?答案构造函数引用的语法是ClassName::new,那么在这个例子里面就是Color::new。但是需要与构造函数引用的签名匹配的函数式接口。 但是语言本身并没有提供这样的函数式接口可以自己创建一个 public interface TriFunctionT,U, V, R {R apply(T t,U u,V v); } 现在可以像下面这样使用构造函数引用了 TriPunctionInteger, Integer, Integer, Color colorFactory Color::new;

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

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

相关文章

郑州网站推广效果北京搜索优化排名公司

相同点:三者存储的都是有序,可重复的数据。 异: ①:ArrayList底层存储类型是Object数组,而LinkedList底层是双向链表 ②:ArrayList和Vector调用创建空参构造器创建对象时,默认的size是10&…

成都装饰公司网站建设网站网站注册

关键词:xml、DTD约束、Schema约束、dom解析、sax解析、jaxp解析器、dom4j解析器 一、xml的简介 1、eXtensible Markup Language:可扩展标记型语言 ①标记型语言:HTML是标记型语言,即使用标签来操作。 ②可扩展: HTML里面的标签是固定,每个标签都有特定的含义<h1><…

工作室 网站经营性备案竞价排名营销

【0】README1&#xff09;本文旨在 intro 异步消息的 相关基础知识&#xff1b;【1】intro【1.1】发送消息1&#xff09;intro&#xff1a;间接性是异步消息的关键所在&#xff1b;2&#xff09;当一个应用向另一个应用发送消息时&#xff0c;两个应用之间没有直接的联系。相反…

editplus怎么创网站做创业项目的网站

前言&#xff1a; 在日常开发当中&#xff0c;如果想要开发多边形&#xff0c;一般都需要多个盒子或者伪元素的帮助&#xff0c;有没有一直办法能只使用一个盒子实现呢&#xff1f; 有的&#xff1a;css裁剪 目录 前言&#xff1a; clip-path到底是什么&#xff1f; clip-pa…

织梦网站 防黑aso优化app推广

创建 字面量方式 var arr []; var arr ["成员1", 2];//可以是不同成员构造函数方式 空的 var array new Array(); 指定长度 var array2 new Array(10); 成员值都是undefined。此方式有技巧使用 虽然值是undefined&#xff0c;但join后不会出现undefined字符串 比…

网站管理入口青浦建设机械网站

Hello大家好&#xff0c;我是你们的南枫学长&#xff0c;咱们今天来学——爬虫之MySql数据入库。 话不多说&#xff0c;导入咱们的老朋友&#xff1a; Pymysql就是我们Python里面的mysql库&#xff0c;主要功能就是用来连接MySql数据库&#xff0c;那么下载还是一样的操作去进…

番禺区住房和建设局网站然后搭建网站

发现穿越类小说 《穿越位面的狂人》 起点地址&#xff1a; https://book.qidian.com/info/1010641845 小说名《位面穿梭之宿舍电梯》改为《穿越位面的狂人》nx大学大一学生柳风&#xff0c;因经济拮据&#xff0c;不得不住在宿舍楼顶的一间破屋子里&#xff0c;半夜下楼上厕…

绵阳网站建设高端品牌wordpress canvas 粒子跟随特效

你正在探访一家农场&#xff0c;农场从左到右种植了一排果树。这些树用一个整数数组 fruits 表示&#xff0c;其中 fruits[i] 是第 i 棵树上的水果 种类 。 你想要尽可能多地收集水果。然而&#xff0c;农场的主人设定了一些严格的规矩&#xff0c;你必须按照要求采摘水果&…

网站建设 万网企业网络营销策划方案设计

这是一个HTML文件&#xff0c;主要包含了一些CSS样式和JavaScript代码&#xff0c;用于创建一个动画效果。 在CSS部分&#xff0c;定义了一些基本的样式&#xff0c;包括页面的背景颜色、位置、大小等。特别的&#xff0c;定义了两种球形元素&#xff08;.ball_A 和 .ball_B&am…

站长之家域名查询排行wordpress博客登不上

本期笔者带给大家部署一个本地私有化知识库&#xff0c;简单明了&#xff0c;直接步入主题&#xff0c;需要读者可以继续关注支持一下啊&#xff01; 目录 背景步骤 一、环境准备二、Ollama环境部署三、AnythingLLM安装 总结 开始下载应用&#xff1a; 操作系统&#xff1a…

邢台网站推广多少钱网站 可以做无形资产吗

真正原始创新是怎么样的&#xff1f;希望这些列表对做视觉研究的朋友有些启发&#xff0c;希望大家能帮我补充一些&#xff0c;谢谢。转载请注明http://hi.baidu.com/daren007或者http://www.sciencenet.cn/blog/王中任.htm。1、D. Marr; T. Poggio.Cooperative Computation of…

网站备案号怎么修改wordpress实现圈子功能

RabbitMQ发布确认机制确保消息从生产者成功传输到交换机和队列&#xff0c;提高系统可靠性。在Spring Boot项目中&#xff0c;通过配置publisher-confirm-type和publisher-returns&#xff0c;启用发布确认和消息返回机制。配置RabbitTemplate的确认回调和返回回调&#xff0c;…

网站名称备案医院管理系统

目录 仿函数 示例一&#xff1a; 示例二 : 常见的仿函数 priority_queue简介 priority_queue的常用接口 priority_queue的模拟实现 基础接口 push() 堆的向上调整算法 堆的插入 pop() 堆的向下调整算法 堆的删除 priority_queue最终实现 仿函数 仿函数&#xff…

衡水网站设计做网站杭州

对给定序列\(\{a_{0,1,2,\cdots}\}\) 构造一个函数\(F(x)\sum_{i0,1,2,\cdots}a_if_i(x)\)&#xff0c;称\(F(x)\)为序列\(\{a_{0,1,2,\cdots}\}\)的生成函数。其中&#xff0c;序列\(\{f_{0,1,2,\cdots}(x)\}​\)只作为标志用&#xff0c;称为标志函数。 普通型生成函数(OGF) …

陕西建设厅网站windows7优化大师下载

SpringData JPA 基本介绍 Spirng data jpa是spring提供的一套简化JPA开发的框架&#xff0c;按照约定好的【方法命名规则】写dao层接口&#xff0c;就可以在不写接口实现的情况下&#xff0c;实现对数据库的访问和操作。 同时提供了很多除了CRUD之外的功能&#xff0c;如分页…

网站死链排查站长检测工具

作者&#xff1a;来自 Elastic Michael Calizo, Tim Lee 在 Elastic&#xff0c;我们大多数成功的客户实施都是从单一用例开始的&#xff0c;旨在满足特定的业务需求。Elastic 最初被采用通常是因为开发人员欣赏它提供的功能。然而&#xff0c;由于其灵活性和可定制性&#xff…

怎样制作网站站点邢台建设局网站上中标公示查询

本文档主要说明一种返工流程,当工人报工时,填写返工数量、变式原因即可启动触发点自动创建返工订单,被创建的反工订单为无料号生产订单,且关联报工订单。涉及系统功能点包括状态参数 一、 后台配置 1).用户状态参数:BS02(SPRO-生产-商店低价控制-主数据-订单-定义状态…

丹阳做网站的linux做网站1G内存够不

介绍 Java的最后几个发行版本&#xff0c;即Java 7&#xff0c;Java 8和即将到来的Java 9&#xff0c;具有许多功能&#xff0c;这些功能使Java开发人员的生活更加轻松。 &#xff08;我知道Java 9会使它变得更困难&#xff0c;但是只有在您采用新的范例时才可以。之后&#xf…

设计师网站有哪些如何做高端网站建设

2024年福建事业单位招聘详细流程&#xff0c;速速查收&#xff01;

普兰店网站建设公司百度云免费空间

1.根据马克思的货币需要量公式&#xff0c;在货币流通速度不变的条件下&#xff0c;执行流通手段的货币量取决于&#xff08;&#xff09;。 A.商品质量 B.商品生产技术条件 C.待销售商品价格总额 D.投机性货币需求 错误 正确答案&#xff1a;左边查询 学生答案&#xff1a;A 2…