Java: 函数式接口双冒号::实现方法引用,传递方法作为函数参数
发布时间:2022-12-01 16:44:58 321
相关标签: # java# java# git# github
方法引用是一种函数式接口的另一种书写方式
方法引用分为三种,方法引用通过一对双冒号:: 来表示
- 静态方法引用,通过类名::静态方法名, 如 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 fun = Integer::parseInt;
Integer value = fun.apply("20");
System.out.println(value);
// 20
// 使用双冒号:: 引用实例方法
String content = "Hello";
Function func = content::substring;
String result = func.apply(1);
System.out.println(result);
// ello
// 使用双冒号:: 引用构造方法
Function 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");
// HELLO
Demo.sayHello(String::toLowerCase, "Hello");
// hello
}
public static void sayHello(Function func, String text) {
String result = func.apply(text);
System.out.println(result);
}
}
参考 卧槽!你竟然不晓得Java中可以用 :: 吗?
文章来源: https://blog.51cto.com/mouday/5888746
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报