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

新加坡网站制作网站源码 照明

新加坡网站制作,网站源码 照明,关键词推广网站,租车网站开发目录 一、简介 二、引用静态方法 1.格式 2.示例 ​编辑 3.条件解析 三、引用成员方法 1.格式 2.示例 四、引用构造方法 1.格式 2.示例 五、类名引用成员方法 1.格式 2.略微不同的方法引用规则 3.示例 六、引用数组的构造方法 1.格式 2.示例 一、简介 方…

目录

一、简介

二、引用静态方法 

1.格式 

 2.示例

​编辑

3.条件解析 

 三、引用成员方法

1.格式 

2.示例 

四、引用构造方法 

1.格式 

2.示例

五、类名引用成员方法

1.格式

2.略微不同的方法引用规则

 3.示例

六、引用数组的构造方法 

1.格式

2.示例


一、简介

方法引用就是,把已有的方法拿过来,当作函数式中抽象方法的方法体。

为什么要使用方法引用? 

在使用Lambda表达式的时候,我们实际上传递进去的代码就是一种解决方案:拿参数做操作

那么考虑一种情况:如果我们在Lambda中所指定的操作方案,已经有地方存在相同方案,那是否还有必要再写重复逻辑呢?答案肯定是没有必要

那我们又是如何使用已经存在的方案的呢?

这就是方法引用的用处了,我们通过方法引用来使用已经存在的方案。

下面示例更能明白方法引用的好处: 

上面示例 ,使用匿名内部类和lambda表达式的方法必须重新实现方法,但是方法引用可以用类实现好的方法拿来使用。

但是这些方法能被拿来方法引用是有条件的(适用二、三、四、六):

1.引用处需要是函数式接口

2.被引用的方法需要已经存在

3.被引用方法的形参和返回值需要跟抽象方法的形参和返回值保持一致

4.被引用方法的功能需要满足当前的要求

刚才的示例代码用到方法引用的地方就是函数式接口的地方,即Arrays类的sort方法的第二个参数comparator,这个参数是一个函数式接口,底层代码如下:

什么是函数式接口?函数式接口就是一个接口,而且这个接口只有一个抽象方法 。

可以被隐式地转换为一个 lambda 表达式或方法引用。这样的接口使得函数式编程在 Java 中成为可能,尤其是在使用 Java 8 引入的流(Stream)和 lambda 表达式时。

在 Java 中,可以通过 @FunctionalInterface 注解来明确标识一个接口为函数式接口。尽管这个注解是可选的,但使用它可以帮助编译器检查该接口是否符合函数式接口的规范。

二、引用静态方法 

1.格式 

类名::方法名

范例:Integer::parseInt

注意   :: 该符号为引用运算符,而它所在的表达式被称为方法引用

 2.示例

将集合里面的字符串转化为数字

3.条件解析 

 下面是Stream接口的抽象方法map,参数是一个Function接口

 Function接口这个参数是函数式接口,底层如下。满足第一个条件,方法引入的地方为函数式接口FunctionalInterface

 下面是Integer类的静态方法parseInt,返回类型和参数值满足方法有内容实现,刚好满足字符串转数字的功能需求。到这里就满足方法引用的后面三个条件。

 三、引用成员方法

1.格式 

对象::成员方法名 

 

注意在静态方法里面比 (如main) 不能用this、super

2.示例 

注意:main方法里面是禁止使用this、super的

四、引用构造方法 

1.格式 

类名::new

范例:Student::new

作用:创建一个对象

2.示例

准备好一个Student类

用引用构造方法的方式将字符串转换出对象

五、类名引用成员方法

1.格式

类名::方法名

范例:String::toUpperCase()

2.略微不同的方法引用规则

前面只有静态方法才能使用类名::方法名,普通方法也要这样用就必须遵守下面的规则。与原规则不同的地方在于形参。

新规则:

 上面的规则说到了抽象方法的第二个形参到最后一个,被引用的方法必须一样。那么抽象方法的第一个参数呢?

抽象方法的第一个参数其实就是我们要用的方法引用的方法所在的类,就是::前面的类名,用官方的话来说就是--被引用方法的调用者。一般是流中的每一个数据的数据类型。

还有一个问题就是,如果抽象方法的第二个参数是空的呢?

抽象方法的第二个参数是空的,表示被引用方法是无参的。

局限性:因为有抽象方法的形参限制,并不是所有的普通方法都能引用。 

 3.示例

需求:将集合中的字符串小写转大写

下面是map的形参即函数式接口,它的抽象方法只有一个参数,所以只能引用无参的方法,流的数据类型是String,所以选用String的无参方法。

下面左边是匿名内部类的写法,右边是String类的无参方法toUpperCase将小写字母转大写,满足功能需求。返回值由被引用的方法决定。

六、引用数组的构造方法 

1.格式

数据类型[ ]::new

范例:int[ ]::new

注意:数组中的数据必须跟流中的数据一样

2.示例

函数式接口的抽象方法 

http://www.yayakq.cn/news/337014/

相关文章:

  • 深圳做网站电话开个公司做购物网站
  • 论坛与网站做优化哪个更好平台开发
  • 网站设计前沿网站一屏网站模板下载 迅雷下载 迅雷下载地址
  • 如何推广企业网站wordpress负载均衡上传附件
  • 关键词seo排名seo外包公司怎么样
  • 三五互联网站报价表服装公司介绍
  • 驻马店建设网站店铺管理软件
  • 提供专业网站建设平台马蜂窝网站建设目的
  • 做甲基化黑点的网站国外有网站备案制度吗
  • 网站建设商城网站网站开发器
  • 适合做网站开发的电脑配置研究院 网站建设
  • 如何介绍设计的网站模板开原铁岭网站建设
  • 网页设计与网站建设的热点欧美网站建设排名
  • 网站服务器在哪租家装网站自己做的
  • 简洁的网站wordpress商城购物表单
  • 做外贸推广哪个网站好如何进行优化
  • 宿州网站建设门户型网站开发难度
  • 网站js跳转网站开发实用案例教程
  • 全能网站服务器网站 首页 关键词
  • 网站开发 .net 开源网易企业邮箱后缀是多少
  • 建设电器网站目的及功能定位小程序开发费用是多少
  • 网站服务器建设合同范本搭建网站教学
  • 网站建设的英语网站 不 备案
  • 网站侧栏设计免费网站建设教程
  • seo建站还有市场吗西安网站建设开发公司怎么样
  • 徐州网站开发设计公司电话网页设计需要什么技术
  • 企业如何建设网站免费工程项目分包平台
  • 衡阳市住房和城乡建设部网站公司微信小程序开发
  • 关于平面设计的网站免费行情的软件大全下载
  • 网站建设之后网站开发制作平台