What is a Constructor Reference in Java?
Introduced as part of Java 8, Constructor Reference is a concept that can only be utilized within the context of Functional Interfaces. This technique enables us to reference pre-defined constructors and assign them to the desired type of Functional Interface without actually instantiating the class. In essence, Constructor Reference allows us to refer to constructors in a way that avoids instantiation.
Syntax

Example 1:
@FunctionalInterface
interface MyInterface {
  Message send(String message);
}
class Message {
  public Message(String message) {
    System.out.println(message);
  }
}
class Test {
  public static void main(String[] args) {
    MyInterface myInterface = Message::new;
    myInterface.send("Hello!");
  }
}
Output: Hello!
Here, we passed the string Hello! as a parameter to the send() function, and that parameter gets forwarded to the constructor, which accepts the string as a parameter.
Example 2:
Let’s update the class Message by adding two more constructors:
class Message {
  public Message(String message) {
    System.out.println(message);
  }
  public Message(String message1, String message2) {
    System.out.println(message1 + message2);
  }
  public Message(String message1, String message2, String message3) {
    System.out.println(message1 + message2 + message3);
  }
}
Now, to refer to the constructor that accepts two parameters with Constructor Reference, we need to define the corresponding method inside the Functional interface.
@FunctionalInterface
interface MyInterface {
  Message send(String message1, String message2);
}
Let’s implement the main method and execute the program:
class Test {
  public static void main(String[] args) {
    MyInterface myInterface = Message::new;
    myInterface.send("Hello ", "World!");
  }
}
Output: Hello World!
We called the send() method that accepts two parameters, and the corresponding constructor got invoked.
I hope this tutorial was helpful to you. To learn more, check out other Java Functional Programming tutorials.