当前位置:网站首页 > Java基础 > 正文

java对象引用教程



<p>你可以使用来创建匿名方法。然而,有时候lambda表达式只是调用一个已经存在的方法。在这种情况下,通过引用已存在的方法来引用它往往更清晰。方法引用使您可以做到这一点;它们是紧凑且易读的lambda表达式,用于已经有名称的方法。</p> <p>再次考虑在类中讨论的部分:</p> <p>假设您的社交网络应用程序的成员包含在一个数组中,并且您想按年龄对数组进行排序。您可以使用以下代码(在示例中查找此部分的代码摘录):</p> <p>此调用的方法签名如下:</p> <p>请注意,接口是一个函数式接口。因此,您可以使用lambda表达式而不是定义并创建实现的类的新实例:</p> <p>然而,比较两个实例的出生日期的这种方法已经存在,即。您可以在lambda表达式的主体中调用此方法:</p> <p>因为此lambda表达式调用了一个已经存在的方法,所以您可以使用方法引用代替lambda表达式:</p> <p>方法引用在语义上与lambda表达式相同。它们都具有以下特点:</p> <ul> <li>它的形式参数列表是从复制过来的,即。</li> <li>它的主体调用了方法。</li> </ul> <p>方法引用有四种种类:</p> <div summary="方法引用的种类" border="1"> <tbody> <tr> <th id="h1">种类</th> <th id="h2">语法</th> <th id="h3">示例</th> </tr> <tr> <td headers="h1">静态方法引用</td> <td headers="h2"></td> <td headers="h3"><br></td> </tr> <tr> <td headers="h1">特定对象的实例方法引用</td> <td headers="h2"></td> <td headers="h3"><br></td> </tr> <tr> <td headers="h1">特定类型的任意对象的实例方法引用</td> <td headers="h2"></td> <td headers="h3"><br></td> </tr> <tr> <td headers="h1">构造函数引用</td> <td headers="h2"></td> <td headers="h3"></td> </tr> </tbody> </div> <p>下面的示例,,包含了前三种方法引用的示例:</p> <p>所有的语句都会打印相同的内容:</p> <p>是包中的众多函数式接口之一。 函数式接口可以表示接受两个参数并产生结果的lambda表达式或方法引用。</p> <p>和这两个方法引用是对静态方法的引用。</p> <p>以下是对特定对象的实例方法的引用的示例:</p> <p>方法引用调用了对象的方法。JRE推断出了方法的类型参数,本例中为。</p> <p>类似地,方法引用调用了对象的方法。JRE推断出了方法的类型参数,本例中为。</p> <p>以下是对特定类型的任意对象的实例方法的引用的示例:</p> <p>方法引用的等效lambda表达式的形式参数列表为,其中和是用于更好地描述此示例的任意名称。该方法引用将调用方法。</p> <p>类似地,方法引用将调用方法。</p> <p>您可以使用关键字引用构造函数,与引用静态方法的方式相同。以下方法将元素从一个集合复制到另一个集合:</p> <p>函数式接口包含一个方法,该方法不接受任何参数并返回一个对象。因此,您可以使用lambda表达式调用方法,如下所示:</p> <p>您可以使用构造函数引用替代lambda表达式,如下所示:</p> <p>Java编译器推断您想要创建一个包含类型元素的集合。或者,您可以这样指定:</p> 

  • 上一篇: java菜鸟教程api
  • 下一篇: java468教程
  • 版权声明


    相关文章:

  • java菜鸟教程api2025-10-31 11:26:02
  • java桌球制作教程2025-10-31 11:26:02
  • java高级教程jvm2025-10-31 11:26:02
  • 杜聚斌java教程2025-10-31 11:26:02
  • 学java全套教程2025-10-31 11:26:02
  • java468教程2025-10-31 11:26:02
  • java使用教程pdf2025-10-31 11:26:02
  • java缓存框架教程2025-10-31 11:26:02
  • java教程pdf豆丁2025-10-31 11:26:02
  • java开发eclipse安装教程2025-10-31 11:26:02