`
jobar
  • 浏览: 347415 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Lambda表达式基础(12)-什么是构造函数的引用?

 
阅读更多
什么是构造函数的引用?

同理,方法引用是已存在方法的句柄,构造函数引用是已存在构造函数的句柄。使用类似于方法引用的语法,我们可以创建构造函数引用,但要用关键字new来代替方法名。例如:
    ArrayList::new
    File::new
如果构造函数为泛型,类型参数可以在new之前显式声明
    interface Factory<T> { T make(); }
    Factory<ArrayList<String>> f1 = ArrayList::<String>new;
正如方法引用,重载的构造函数之间的选择是使用上下文的目标类型进行。例如,下面的代码的第二行映射Integer(String)构造器到strList的每个元素(然后用一个collector将它们全部加入一个新的collection中):
    List<String> strList = Arrays.asList("1","2","3");
    List<Integer> intList = strList.stream().map(Integer::new).collect(Collectors.toList());

原文链接: http://www.lambdafaq.org/what-are-constructor-references/
分享到:
评论

相关推荐

    Java 8 lambda表达式

    Lambda表达式可以与方法引用和构造器引用结合使用,进一步简化代码。例如,`Arrays.sort(arr, Integer::compareTo)`,这里的`Integer::compareTo`是一个方法引用,等同于`(a, b) -&gt; a.compareTo(b)`。 6. **默认...

    2_Lambda表达式.zip

    此外,Lambda表达式还可以与方法引用和构造器引用配合使用,使得代码更加简洁。方法引用允许我们直接引用已有方法,如`System.out::println`,而构造器引用则允许我们在创建对象时直接指定构造器,如`List::new`。 ...

    Java8的lambda表达式

    Java8的Lambda表达式是Java语言的一次重大更新,它引入了函数式编程的概念,极大地简化了处理匿名函数的方式,特别是在处理集合和并发操作时。Lambda表达式使得代码更加简洁、易读,同时也提升了程序的执行效率。在...

    C#lambda表达式的使用

    Lambda 表达式是 C# 编程语言中的一个重要概念,也是函数式编程的基础。Lambda 表达式可以被用作创建委托对象或表达式树类型。所有的 Lambda 表达式都使用操作符“=&gt;“,表示“goes to (转变为)”。 Lambda 表达式...

    java8 lambda表达式学习总结

    4. **构造器引用**:同样,Lambda 表达式可以用于创建对象,特别是当构造函数没有参数时,如 `list.add(() -&gt; new Thread())`。 5. **并行流**:Stream API 支持并行操作,通过 `.parallelStream()`,Lambda 表达式...

    C#将Lambda表达式转成Sql语句

    在.NET框架中,C#是一种强大的编程语言,它支持Lambda表达式,这使得代码更加简洁、易读。Lambda表达式通常用于LINQ(Language Integrated Query)查询,它允许程序员使用类似SQL的语法在内存中的数据集上进行操作。...

    精通lambda表达式: java多核编程

    Lambda表达式还可以与方法引用和构造器引用结合,进一步简化代码。如`System.out::println`就是一个方法引用,它相当于一个Lambda表达式 `(Object o) -&gt; System.out.println(o)`。 7. **默认方法** Java 8的接口...

    Java8的Lambda表达式

    方法引用可以是静态方法、实例方法和构造函数的引用。例如,可以引用String的length()方法: ```java names.stream() .map(String::length) .filter(len -&gt; len &gt;= 4) .sorted() .collect(Collectors.toList())...

    Stream、Lambda表达式练习.doc

    8. 自定义对象:在本练习中,我们使用了一个自定义的Person对象,它有一个name属性和一个构造函数。 9. ArrayList集合:Java中的一个集合类,用于存储多个元素。 10. Scanner类:Java中的一个输入类,用于从控制台...

    java lambda 表达式(语言篇和类库篇)

    当Lambda表达式中的代码与已存在的方法或构造器匹配时,可以使用方法引用或构造器引用来代替Lambda。例如,`Arrays.sort(list, Integer::compareTo)`。 4. **三元操作符与Lambda**: Lambda表达式可以替代简单的...

    Lambda表达式超详细总结

    Lambda表达式可以与方法引用、构造器引用结合,以创建更复杂的逻辑。例如,`Consumer`接口的`accept`方法可以与对象的方法引用结合,实现对对象的操作。 9. **变量作用域** Lambda表达式的变量作用域仅限于其自身...

    Java8新特性之Lambda表达式和Optional类

    函数式接口可以被 Lambda 表达式实例化,允许开发者使用 Lambda 表达式编写更简洁的代码。 1.2 函数式接口- Consumer/Predicate/Function/Supplier 函数式接口有四种类型:Consumer、Predicate、Function 和 ...

    Lambda表达式学习教程

    标签“表达式”暗示了教程可能涉及Lambda表达式在不同上下文中的用法,如在方法引用、构造器引用、比较操作和条件表达式中的应用。此外,Lambda表达式还能与Java的其他新特性,如方法引用来协同工作,如 `list.sort...

    JAVA lambda表达式

    1. **什么是Lambda表达式**:Lambda表达式本质上是一个匿名函数,它可以被赋值给一个变量,作为参数传递给方法,或者在某些情况下直接作为方法体。Lambda表达式由三部分组成:参数列表、箭头符号(-&gt;)和函数体。 2...

    day07_线程池、lambda表达式-每日作业卷 -答案2

    在给定的代码示例中,通过实现`Runnable`接口并将其作为`Thread`构造函数的参数来创建线程。Lambda表达式可以用于简洁地定义`Runnable`接口的`run()`方法。 ```java public class Test06 { public int start = 1; ...

    Lambda表达式详细总结.pdf

    Lambda表达式是一种匿名函数,允许开发者在代码中定义简洁的单行函数或多行语句块。Lambda表达式由输入参数、Lambda运算符和表达式或语句块组成。 一、输入参数 输入参数是Lambda表达式的左边部分,包含参数的数量...

    lambda表达式详解

    Lambda表达式的主要目标是简化处理匿名函数,即没有名字的函数,尤其在处理集合操作、事件处理以及多线程等场景时,能极大提高代码的可读性和简洁性。 ### 1. Lambda表达式的基本语法 Lambda表达式的一般形式如下...

    Java基础知识-day12【函数式接口、方法引用】修改后文档.pdf

    【函数式接口与方法引用】在Java中,函数式接口是指具有且仅具有一个抽象方法的接口,这一特性使得它们成为实现Lambda表达式的基础。Lambda表达式是Java 8引入的一种新特性,允许以简洁的方式表示匿名函数。函数式...

    java8手把手教你学会写lambda表达式

    Lambda 表达式极大地简化了函数式编程,让 Java 更加简洁、高效。下面将详细介绍如何在 Java 8 中使用 Lambda 表达式。 ### 1. Lambda 表达式的语法 Lambda 表达式的基本形式如下: ``` (parameters) -&gt; ...

Global site tag (gtag.js) - Google Analytics