java双冒号写法(Lambda的简写)
类似这种 Person::getName,双冒号写法,是Java8对Lambda表达式的简写
常见的简写场景有
以下是Java 8中方法引用的一些语法:
静态方法引用(static method)语法:classname::methodname 例如:Person::getAge
对象的实例方法引用语法:instance::methodname 例如:System.out::println
对象的超类方法引用语法: super::methodname
类构造器引用语法: classname::new 例如:ArrayList::new
数组构造器引用语法: typename[]::new 例如: String[]:new
注意:若Lamdba参数列表中的第一个参数是实例方法的调用者,而第二个参数是实例方法的参数时,可以使用ClassName::method (类::实例方法)
常见使用场景举例
String::valueOf //x -> String.valueOf(x) Object::toString //x -> x.toString() x::toString //() => x.toString() ArrayList::new //() => new ArrayList<>() Math::abs //n -> Math.abs(n) marry(this::buyHouse) //marry(() -> this.buyHouse()) int[]::new //length -> new int[length] Stream.of(1, 2, 3, 4, 5, 6).min(Integer::compareTo) //Stream.of(1, 2, 3, 4, 5, 6).min((a,b) -> a.compareTo(b)) //循环中使用 list.forEach(System.out::println); list.forEach(new Demo()::print); list.forEach(Demo::print);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2020-07-05 TCP的拥塞控制
2018-07-05 transitionEnd和animationEnd的一个临时解决方案
2017-07-05 css3动画总结