java里_java中的::是什么意思?

更新时间:2023-07-09 21:55:02 阅读: 评论:0

java⾥_java中的::是什么意思?
这⾥是java8 的新特性的应⽤。
嫉妒的读音
forEach是属于java集合的⼀个⽅法,准确来说,集合在java8中拥有⼀个stream⽅法,可以得到⼀个流对象,这个对象拥有很多⽅法,这些⽅法可以很⽅便的对集合进⾏例如排序,分组,计数,遍历,转换等操作,⽽遍历是⽐较常见的⼀种,forEach就是⽤来做这个的,这⾥的forEach就是stream的forEach。
java此时还有另外⼀个特性叫做lambda表达式和函数式接⼝,仅仅有⼀个未实现⽅法的接⼝,可以直接写作(参数列表) -> {⽅法体}这种形式。
例如:double date
@FunctionalInterface分享阅读
public interface FuncA {
longresultinvoid doSomeThing(String str);
蓝精灵2插曲
}
那么上⾯这种接⼝就可以直接写作:
FuncA funcA = (str) -> {
System.out.println("hello");
};
类似的还有Swing或者javaFx的监听器:
btn.addActionListener(e->{
// do something
});
这样就省去了之前需要专为他编写⼀个实现类或者匿名内部类的代码,直接对接⼝进⾏实现。
alas⽽在这之上,如果⼀个⽅法的调⽤中,这个⽅法给接⼝提供的参数和他接收的返回,和你现有某个实现完全⼀致,就可以进⼀步进⾏简化,称为⽅法引⽤。
rerved
王勃 滕王阁序
forEach⽅法提供⼀个某种类型的Object(具体是什么类型是要看Stream类的泛型参数的,不过⼀般就是这个集合提供的那种类型),⽽System.out.println可以接受⼀个Object,因此,forEach提供的参数和System.out.println的参数类型是⼀致的,可以进⾏这种简写。
具体来说就是:原本应该写为:
.forEach(element -> {
System.out.println(element)
})
但是System.out.println的参数和传递的参数element 的类型完全匹配,所以这样的时候就可以简化为:
英国馆
.forEach(System.out::println)
即forEach将会使⽤System.out对象的println⽅法进⾏接下来的操作。

本文发布于:2023-07-09 21:55:02,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/172432.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:参数   对象   集合   类型   简化   遍历
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图