java中的方法引用
引用静态方法:类名称::static 方法名称;
引用某个对象的方法:对象::普通方法;
引用特定类方法:特定类::方法
引用构造方法:类名称::new
范例:引用静态方法
package com.java.demo; interface IMessage<P,R>{ // P表示方法的参数类型,R表示方法的返回值类型 public R change(P p); } public class TestDemo{ public static void main(String args[]){ /** * 将基本数据类型转换成String类型:public static String valueOf(); * 下面语句表示,将String类中改的valueOf()方法传递给change()方法 */ IMessage<Integer,String> msg = String :: valueOf; String str = msg.change(100); System.out.println(str.replaceAll("0","6")); } }
引用某个对象的方法
@FunctionalInterface //此处为函数式接口,只允许接口定义一个方法
package com.java.demo;
@FunctionalInterface //此处为函数式接口,只可以定义一个方法 interface IMessage<R>{ // P表示方法的参数类型,R表示方法的返回值类型 public R change(); } public class TestDemo{ public static void main(String args[]){ /** *String类的转大写方法:public String toUpperCase(); *""hello"为String类的匿名对象,传递该普通方法 */ IMessage<String> msg = "hello" :: toUpperCase; String str = msg.change(); System.out.println(str);//HELLO } }
引用特定类
package com.java.demo; interface IMessage<R>{ // P表示方法的参数类型,R表示方法的返回值类型 public R change(String str1,String str2); } public class TestDemo{ public static void main(String args[]){ /** *String类的转大写方法:public int compareTo(); 字符串比较,相等返回 0,小于返回<0;大约返回数字>0 *srt1.compareTo(str2); */ IMessage<Integer> msg = String :: compareTo; System.out.println(msg.change("java", "java"));//0 } }
引用构造方法
package com.java.demo; interface IMessage<R>{ // P表示方法的参数类型,R表示方法的返回值类型 public R change(String title); } class Book{ private String title; public Book(String title){ this.title = title; } @Override public String toString() { return "书名:" +this.title; } } public class TestDemo{ public static void main(String args[]){ IMessage<Book> msg =Book :: new; //msg.change("java开发")返回的是Book类对象 System.out.println(msg.change("java开发")); } }
内建函数式接口:
功能型接口:public Interface Function<T,R> ,定义的方法:public R appy(T t);接受参数也返回一个处理结果
消费型接口:public Interface Consumer<T> ,定义方法 public void accept(T t);只接受参数不返回处理结果
供给型接口:public Interface Supper<T> 定义反方法 :public T get();不接受参数只返回处理结果
断言型接口:public Interface Predicate<T> 定义方法 public boolean test<T t> 接受参数返回boolean值
package com.java.demo; import java.util.function.Function; public class TestDemo{ public static void main(String args[]){ Function<String,Boolean> fun ="hello" :: equals; System.out.println(fun.apply("hello")); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?