方法引用类似于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