java中::的作用
::是java8的新特性,叫做方法引用
由于lamdba表达式中不可以直接执行方法,所以出现了方法引用
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
// 实例方法的方法引用
ArrayList<String> list = new ArrayList();
list.add("aa");
list.add("bb");
list.add("cc");
// list.forEach(path-> System.out.println(path)); 和下面的输出是一样的
// 消费型函数式接口 path作为参数传递
// 因为forEach要接收一个lambda表达式,所以要将method方法转换为方法引用
list.forEach(new MethodQuote()::method1);
System.out.println("=================这是一个分隔符=================");
// 静态的方法引用
list.forEach(MethodQuote::method2);
System.out.println("=================这是一个分隔符=================");
}
}
class MethodQuote{
private String name;
public MethodQuote() {
}
public MethodQuote(String name) {
this.name = name;
}
public void method1(String path){
System.out.println(path);
}
public static void method2(String path){
System.out.println(path);
}
public static void main(String[] args) {
// 类构造器引用语法 这里 并没有实现接口
Interface methodQuote=MethodQuote::new;
MethodQuote mq=methodQuote.create("java");
System.out.println(mq.name);
}
}
interface Interface{
MethodQuote create(String name);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)