Java方法引用(java方法引用重要吗)

  本篇文章为你整理了Java方法引用(java方法引用重要吗)的详细内容,包含有java方法引用通俗理解 java方法引用重要吗 java方法引用作为函数参数 java方法引用数组 Java方法引用,希望能帮助你了解 Java方法引用。

   以Lambda表达式的方式,调用了接口的实现类,重写了接口中的方法

   接口作为参数,实际上参数是接口的实现类*/

   usePrintable(s - System.out.println(s));

   /*方式二

   方法引用符 ::

   参数s:可推导的就是可省略的*/

   usePrintable(System.out::println);

   * 一个以接口对象为形式参数的方法

   * @param p 接口对象

   private static void usePrintable(Printable p) {

   System.out.println("卡塔尔世界杯");

  

 

 

  运行结果:

  

卡塔尔世界杯

 

  卡塔尔世界杯

  

 

  方法引用符

  :: 该符号为引用运算符,它所在的表达式被称为方法引用

  
Lambda表达式:根据“可推导就是可省略”原则,无需指定参数类型,也无需指定重载形式,他们都将被自动推导

  方法引用:同样可根据上下文推导

  Lambda表达式可以使用方法引用改进

  
//Lambda表达式被引用类方法替代时,它的形式参数全部传递给静态方法作为参数

   useConvert(Integer::parseInt);

  
//对象::成员方法

   //Lambda表达式被对象的实例化替代时,它的形式参数全部传递给该方法作为参数

   usePrinter(new PrintString()::printUpper);

   private static void usePrinter(Printer p){

   p.printUpperCase("How are you");

  

 

 

  

HOW ARE YOU

 

  HOW ARE YOU

  

 

  引用类的实例方法

  引用类的实例方法,其实就是引用类中的成员方法
 

  格式:类名::成员方法

  
private static void useMyString(MyString m) {

   System.out.println(m.mySubString("今天天气很凉快", 2, 6));

  

 

 

  

天气很凉

 

  

 

  引用构造器

  引用构造器,其实就是引用构造方法

  格式:类名::new

  
定义一个学生类,里面有两个成员变量(name,age),并提供无参构造方法和带参构造方法,以及成员变量的set和get方法

  

public class Student {

 

   private String name;

   private int age;

   public Student() {

   public Student(String name, int age) {

   this.name = name;

   this.age = age;

   public String getName() {

   return name;

   public void setName(String name) {

   this.name = name;

   public int getAge() {

   return age;

   public void setAge(int age) {

   this.age = age;

  

 

  定义一个接口,里面有一个抽象方法

  

public interface StudentBuilder {

 

   Student build(String name,int age);

  

 

  定义一个测试类

  

public class StudentDemo {

 

   public static void main(String[] args) {

   //Lambda表达式

   useStudentBuilder((a, b) - new Student(a, b));

   //引用构造器

   //Lambda表达式被构造器替代的时候,它的形式参数全部传递给构造器作为参数

   useStudentBuilder(Student::new);

   private static void useStudentBuilder(StudentBuilder s) {

   Student stu = s.build("钱学森", 28);

   System.out.println(stu.getName() + "-" + stu.getAge());

  

 

  运行结果
 

  ``java
 

  钱学森-28
 

  钱学森-28

  

 

 

  以上就是Java方法引用(java方法引用重要吗)的详细内容,想要了解更多 Java方法引用的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: