Java8新特性方法引用、构造器引用、数组引用
来源:互联网 发布:安卓收音机软件 编辑:程序博客网 时间:2024/06/06 08:54
引用
方法引用
方法引用是使用“::”将方法名和对象或类分隔,若lambda体中的内容有方法已经实现,我们可以使用“方法引用”,主要分为三种情况。
对象::实例方法名
注意:lambda体中调用方法的参数列表与返回值类型,要与函数式接口中抽象方法的参数列表和返回类型保持一致。
public void test1(){ User user = new User(); user.setName("小明"); //方法引用前 Supplier<String> sup = () -> user.getName(); System.out.println(sup.get()); //方法引用后 Supplier<String> sup1 = user :: getName; System.out.println(sup1.get()); }
类::静态方法名
@Test public void test2(){ //方法引用前 Comparator<Integer> com = (x,y) -> Integer.compare(x, y);; System.out.println(com.compare(1, 2)); //方法引用后 Comparator<Integer> com1 = Integer::compare; System.out.println(com1.compare(1, 2)); }
类::实例方法名
若lambda参数列表中的第一参数是实例方法的调用者,而第二个参数是实例方法参数时,可以使用ClassName::method。
@Test public void test3(){ //方法引用前 BiPredicate<String, String> bp = (x,y) -> x.endsWith(y); System.out.println(bp.test("1", "2")); //方法引用后 BiPredicate<String, String> bp1 = String::equals; System.out.println(bp1.test("1", "2")); }
构造器引用
public void test4(){ //方法引用前 Supplier<User> sup = () -> new User(); User u = sup1.get(); System.out.println(u.toString()); //方法引用后 Supplier<User> sup1 = User::new;//调用的为无参构造器 User u1 = sup1.get(); System.out.println(u1.toString()); }
数组引用
public void test5(){ //方法引用前 Function<Integer, String[]> fn = (x) -> new String[x]; String[] str = fn.apply(10); System.out.println(str.length); //方法引用后 Function<Integer, String[]> fn1 = String[]::new; String[] str1 = fn1.apply(20); System.out.println(str1.length); }
阅读全文
0 0
- Java8新特性方法引用、构造器引用、数组引用
- java8新特性(方法引用、构造器引用)
- Java8新特性--方法引用
- JAVA8新特性[第三季]-方法引用与构造器引用
- Java8新特性——方法和构造函数引用
- Java8 方法引用和构造器引用
- 方法的引用-java8新特性
- Java8 新特性之三---------方法引用
- JAVA8新特性——方法引用
- JAVA8新特性——方法引用
- Java8新特性之三方法引用
- JAVA8之方法引用和构造引用
- Java8方法引用和构造器引用示例
- Android 使用Java8新特性之"方法引用"
- JAVA8新特性(三)——方法引用
- java8新特性之函数式接口、lambda表达式、接口的默认方法、方法和构造函数的引用
- JDK8新特性☞方法构造方法的引用
- 详解Java8特性之方法引用
- java生成 图片验证码
- css的零碎笔记
- 浅谈jsonp
- Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面
- HDU
- Java8新特性方法引用、构造器引用、数组引用
- Add Two Numbers
- 软件工程学习思考
- hbase shell命令
- java实现二叉树
- JavaScript利用HTML DOM进行文档操作的方法
- oracle用户与表空间关系
- Let the Balloon Rise
- hdu 1429