Java小知识

lambda表达式:

这里主要记录一下lambda表达式中“::”的使用方法:

//表达式
person -> person.getAge();
//可以替换成
Person::getAge
() -> new HashMap<>();
//可以替换成
HashMap::new 

“::”【双冒号运算】对应的参数类型是Function<T,R> ,T表示传入的参数,R表示返回的类型。对比以上例子中person就是传入的参数,person.getAge()是返回值,因此对应 Person::getAge就相当于Function<Person,Integer>。
这里给出一个具体的例子:我们将List<String>中的String全部转成成大写字符。

//->用法
public void convertTest() {
    List<String> collected = new ArrayList<>();
    collected.add("alpha");
    collected.add("beta");
    collected = collected.stream().map(string -> string.toUpperCase());
    System.out.println(collected);
//::用法
public void convertTest() {
    List<String> collected = new ArrayList<>();
    collected.add("alpha");
    collected.add("beta");
    collected = collected.stream().map(String::toUpperCase);//注意发生的变化
    System.out.println(collected);
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容