Java中方法引用和构造函数引用的区别?

方法引用类似于lambda表达式,用于在不调用该方法的情况下引用该方法,而构造函数引用用于在不实例化命名类的情况下引用该构造函数。 方法引用需要类似于lambda表达式的目标类型。 但是,它们没有提供方法的实现,而是引用现有类或对象的方法,而构造函数引用为类内的不同构造函数提供了不同的名称。

语法-方法引用

<Class-Name>::<instanceMethodName>

示例

import java.util.*;

public class MethodReferenceTest {

   public static void main(String[] args) {

      List<String> names = new ArrayList<String>();

      List<String> selectedNames = new ArrayList<String>();

      names.add("Adithya");

      names.add("Jai");

      names.add("Raja");

      names.forEach(selectedNames :: add); //实例方法引用

      System.out.println("Selected Names:");

      selectedNames.forEach(System.out :: println);

   }

}

输出结果

Selected Names:Adithya

Jai

Raja

语法-构造函数引用

<Class-Name>::new

示例

@FunctionalInterfaceinterface MyInterface {

   public Student get(String str);

}

class Student {

   private String str;

   public Student(String str) {

      this.str = str;

      System.out.println("学生的名字是: " + str);

   }

}

public class ConstrutorReferenceTest {

   public static void main(String[] args) {

      MyInterface constructorRef = Student :: new;   //构造函数引用

      constructorRef.get("Adithya");

   }

}

输出结果

学生的名字是: Adithya

以上是 Java中方法引用和构造函数引用的区别? 的全部内容, 来源链接: utcz.com/z/338604.html

回到顶部