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

日照官方网站建设项目seo网络营销推广排名

日照官方网站建设项目,seo网络营销推广排名,免费查询个人企业信息,完整的活动策划方案Java8新特性2——方法引用 注:以下内容基于Java 8,所有代码都已在Java 8环境下测试通过 目录: Java8新特性1——函数式接口&lambda表达式方法引用Stream 1. 方法引用 方法引用提供了一种替代 lambda 表达式的语法,允许以更…

Java8新特性2——方法引用

注:以下内容基于Java 8,所有代码都已在Java 8环境下测试通过

目录:

  • Java8新特性1——函数式接口&lambda表达式
  • 方法引用
  • Stream

1. 方法引用

方法引用提供了一种替代 lambda 表达式的语法,允许以更简洁的方式使用 lambda 表达式,特别是在需要传递方法或者函数作为参数时。

方法引用本质是 lambda 表达式的语法糖,如果一个 lambda 表达式仅仅是调用了另外一个方法,此时可用方法引用替换此 lambda 表达式

方法引用仅仅是简化了 lambda 表达式的写法,因此方法引用并不能脱离 lambda 表达式单独使用。

2. 使用方法

方法引用使用引用运算符 :: 指向一个方法,有以下几种常见写法:

  • 引用构造函数
  • 引用静态方法
  • 引用成员函数
  • 引用某个类型的任意对象的实例方法

3. 引用构造函数

分为构造器引用和数组构造函数引用。

3.1 构造器引用

语法格式:

类名::new

如:

lambda表达式:

() -> new String()

等价于

构造器引用

String::new

使用示例:

public class Main {public static void main(String[] args) {MyInterface myClassLambda = (x) -> new MyClass(x);//lambda 表达式myClassLambda.f(10);MyInterface myClassFunction = MyClass::new;//方法引用myClassFunction.f(20);}
}class MyClass {/*** 参数:整型* 返回值:MyClass类型*/MyClass(int arg) {System.out.println("有参构造器,参数是" + arg);}
}@FunctionalInterface
interface MyInterface {/*** 参数:整型* 返回值:MyClass类型*/MyClass f(int a);
}

3.2 数组构造函数引用

语法格式:

数据类型[]::new

如:

lambda表达式:

() -> new int[]

等价于

数组构造函数引用

int[]::new

使用示例:

import java.util.function.IntFunction;public class Main {public static void main(String[] args) {IntFunction<int[]> intArrayLambda = (len) -> new int[len];//lambda 表达式intArrayLambda.apply(10);IntFunction<int[]> intFunction = int[]::new;//方法引用intFunction.apply(10);}
}

注:IntFunction 是 Java 内置的函数式接口,可用于创建泛型数组。

4.引用静态方法

语法格式:

类名::静态方法名

如:

lambda表达式:

(x) -> Math.sin(x)

等价于

方法引用

Math::sin

使用示例:

public class Main {public static void main(String[] args) {MyInterface sinLambda = (x) -> Math.sin(x);//lambda 表达式MyInterface sinFunction = Math::sin;//方法引用System.out.println(sinLambda.sin(1.2));System.out.println(sinFunction.sin(1.2));}
}@FunctionalInterface
interface MyInterface {double sin(double x);
}

5. 引用成员函数

可以分为以下三种:

  • 使用对象
  • 使用 super 关键字(引用超类)
  • 使用 this 关键字

以 this 关键字为例,另外两种类似

语法格式:

this::成员函数名

如:

lambda表达式:

(s) -> this.fun(s)

等价于

方法引用

this::fun

使用示例:

public class Main extends Father {public static void main(String[] args) {new Main().test();}private void test() {//lambda 表达式MyInterface lambda1 = (s) -> new Main().fun(s);MyInterface lambda2 = (s) -> super.fun(s);MyInterface lambda3 = (s) -> this.fun(s);lambda1.f("lambda1");lambda2.f("lambda2");lambda3.f("lambda3");//方法引用MyInterface function1 = new Main()::fun;MyInterface function2 = super::fun;MyInterface function3 = this::fun;function1.f("function1");function2.f("function2");function3.f("function3");}void fun(String s) {System.out.println("调用子类中的 fun:" + s);}
}class Father {void fun(String s) {System.out.println("调用父类中的 fun:" + s);}
}@FunctionalInterface
interface MyInterface {void f(String s);
}

6. 引用某个类型的任意对象的实例方法

使用示例:

import java.util.Arrays;public class Main {public static void main(String[] args) {String[] strings = {"abc", "ghi", "def"};Arrays.sort(strings, String::compareToIgnoreCase);for (String s : strings) {System.out.println(s);}}
}
http://www.dinnco.com/news/26025.html

相关文章:

  • 怎么在网站标题做logo网站百度关键词seo排名优化
  • 可以随意做配搭的网站百度竞价排名费用
  • 网站建设业务怎么跑疫情最新情况 最新消息 全国
  • 菏泽做网站建设的公司国内外搜索引擎大全
  • 保定网站制作公司高州新闻 头条 今天
  • 道真县住房和城乡建设局网站网络营销与直播电商专业介绍
  • 怎么查看网站是哪个公司做的营销心得体会感悟300字
  • 管理系统是网站吗sem竞价课程
  • wordpress手机版弹出式导航上海seo优化
  • 遵义市做网站设计公司网络关键词优化方法
  • 网站的导航用css怎么做seo常用工具网站
  • 政府网站建设管理工作落实情况北京营销推广网站建设
  • 下载网页图片重庆seo优化推广
  • 淘客网站建设带appseo sem是什么意思
  • 手机网站图片自适应友情链接的获取途径有哪些
  • 丹东网站建设公司关键词优化的方法有哪些
  • 郑州网站推广seo建站技术
  • 网站制作深百度下载并安装最新版
  • wordpress修改引用地址扬州seo推广
  • 品牌网站建设小i蝌蚪品牌营销策划怎么写
  • 做一个自己的免费网站吗百度引流平台
  • 响应式外贸建站百度助手
  • 专业网站建设找哪家好百度引擎入口
  • 网站分析与优化的文章怎么做网站推广
  • wordpress页面相册seo教程搜索引擎优化入门与进阶
  • 尚未设置自定义缩略图wordpressseo关键词优化是什么意思
  • 太原网站优化教程百度网络营销中心客服电话
  • 小公司网站如何做网络营销有哪几种方式
  • 公司建设网站需要什么条件中国北京出啥大事了
  • 百度首页网站推广多少钱一年网络营销运营策划