1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Java: 函数式接口双冒号::实现方法引用 传递方法作为函数参数

Java: 函数式接口双冒号::实现方法引用 传递方法作为函数参数

时间:2021-06-04 07:18:12

相关推荐

Java: 函数式接口双冒号::实现方法引用 传递方法作为函数参数

方法引用是一种函数式接口的另一种书写方式

方法引用分为三种,方法引用通过一对双冒号:: 来表示

静态方法引用,通过类名::静态方法名, 如 Integer::parseInt实例方法引用,通过实例对象::实例方法,如 str::substring构造方法引用,通过类名::new, 如 User::new

package com.github.mouday.demo;import java.util.function.Function;public class Demo {public static void main(String[] args) {// 使用双冒号:: 引用静态方法Function<String, Integer> fun = Integer::parseInt;Integer value = fun.apply("20");System.out.println(value);// 20// 使用双冒号:: 引用实例方法String content = "Hello";Function<Integer, String> func = content::substring;String result = func.apply(1);System.out.println(result);// ello// 使用双冒号:: 引用构造方法Function<Integer, Integer> intFunc = Integer::new;Integer ret = intFunc.apply(10);System.out.println(ret);// 10}}

将函数引用作为方法的参数

package com.github.mouday.demo;import java.util.function.Function;public class Demo {public static void main(String[] args) {Demo.sayHello(String::toUpperCase, "Hello");// HELLODemo.sayHello(String::toLowerCase, "Hello");// hello}public static void sayHello(Function<String, String> func, String text) {String result = func.apply(text);System.out.println(result);}}

参考

卧槽!你竟然不晓得Java中可以用 :: 吗?

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。