java中方法引用
2021/9/7 22:06:13
本文主要是介绍java中方法引用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
方法引用符
1:::该符号为引用运算符,而它所在的表达式被称为方法引用
2:方法引用是Lambda的孪生兄弟
eg:
定义接口Printable,有一个方法printInt:
public interface Printable { void printInt(int i); }
测试类:
public class Main { public static void main(String[] args) { //调用usePrintable方法 //usePrintable(i->System.out.println(i)); //方法引用 usePrintable(System.out::println); } public static void usePrintable(Printable p){ p.printInt(666); } } //666
Lambda表达式支持的方法引用
常见的引用方式:
- 引用类方法
- 引用对象的实例方法
- 引用类的实例方法
- 引用构造器
引用类方法
引用类方法就是引用类的静态方法
格式:类名::静态方法
范例:Integer::parseInt
eg:
定义接口Converter,有一个方法convert:
public interface Converter { int convert(String s); }
测试类:
public class Main { public static void main(String[] args) { //调用useConverter方法 //useConverter(s->Integer.parseInt(s)); //方法引用 useConverter(Integer::parseInt); } private static void useConverter(Converter c){ int num = c.convert("666"); System.out.println(num); } } //666
引用对象的实例方法
引用对象的实例方法就是引用类中的成员方法
格式:对象::成员方法
范例:“HelloWorld”::toUpperCase
eg:
定义一个类PrinterString,有一个方法printUpper:
public class PrinterString { //输出字符串s参数变成大写的数据 public void printUpper(String s){ System.out.println(s.toUpperCase()); } }
定义一个接口Printer,有一个方法printUpperCase:
public interface Printer { void printUpperCase(String s); }
测试类:
public class PrinterDemo { public static void main(String[] args) { usePrinter(s->System.out.println(s.toUpperCase())); //方法引用 PrinterString ps = new PrinterString(); usePrinter(ps::printUpper); } private static void usePrinter(Printer p){ p.printUpperCase("halou"); } }
引用类的实例方法
引用类的实例方法就是引用类中的成员方法
格式:类名::成员方法
范例:String::substring
eg:
定义一个接口MyString,有一个方法mySubString:
public interface MyString { String mySubString(String s, int x, int y); }
测试类:
public class Main { public static void main(String[] args) { /*useMyString((String my, int x, int y)->{ return my.substring(x,y); });*/ //useMyString((s,x,y)->s.substring(x,y)); //方法引用 useMyString(String::substring); } private static void useMyString(MyString p){ System.out.println(p.mySubString("HelloWorld",2,5)); } }
引用构造器
引用构造器就是引用构造方法
格式:类名::new
范例:Student::new
eg:
定义一个学生类:
public class Student { private String name; private int age; public Student() { } public Student(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
定义一个接口StudentBuilder,有一个方法build:
public interface StudentBuilder { Student build(String name, int age); }
测试类:
public class Main { public static void main(String[] args) { /*useStudentBuilder((String name, int age)->{ return new Student(name,age); });*/ //useStudentBuilder((name,age)->new Student(name,age)); //方法引用 useStudentBuilder(Student::new); } private static void useStudentBuilder(StudentBuilder sb){ Student s = sb.build("nn",21); System.out.println(s.getName()+" "+s.getAge()); } }
这篇关于java中方法引用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-11有哪些好用的家政团队管理工具?
- 2025-01-11营销人必看的GTM五个指标
- 2025-01-11办公软件在直播电商前期筹划中的应用与推荐
- 2025-01-11提升组织效率:上级管理者如何优化跨部门任务分配
- 2025-01-11酒店精细化运营背后的协同工具支持
- 2025-01-11跨境电商选品全攻略:工具使用、市场数据与选品策略
- 2025-01-11数据驱动酒店管理:在线工具的核心价值解析
- 2025-01-11cursor试用出现:Too many free trial accounts used on this machine 的解决方法
- 2025-01-11百万架构师第十四课:源码分析:Spring 源码分析:深入分析IOC那些鲜为人知的细节|JavaGuide
- 2025-01-11不得不了解的高效AI办公工具API