The one-word answer to this question is "no", Java does not allow constructors to have a return type not even void.
Let's take a look at an example:
public class Main {
int i;
public void Main() {
System.out.println("Not considered as a Constructor!!");
}
public String Main(int i) {
System.out.println("Not considered as a Constructor!!");
return "Hello!";
}
public Main() {
System.out.println("public Main(): Valid Constructor!");
}
public Main(int i) {
System.out.println("public Main(int i): Valid Constructor!");
}
public static void main(String[] args) {
Main main1 = new Main();
Main main2 = new Main(10);
main1.Main(); //this is a method call!
}
}
Output:
public Main(): Valid Constructor!
public Main(int i): Valid Constructor!
Not considered as a Constructor!!
What happens when you specify a return type to a Constructor in Java?
Well, there will be no errors but it will no longer be a constructor but just another method of a class with a code-smell (a method with a wrong naming convention)
Why constructs in Java do not allow return types?
Remember, the purpose of constructors is to initialize objects, and their invocation is implicitly triggered during object creation, allowing return types would blur the distinction between constructors and methods, leading to confusion and potential misuse.
Facing issues? Have Questions? Post them here! I am happy to answer!
Rakesh (He/Him) has over 14+ years of experience in Web and Application development. He is the author of insightful How-To articles for Code2care.
Follow him on: X
You can also reach out to him via e-mail: rakesh@code2care.org
- Get the current timestamp in Java
- Java Stream with Multiple Filters Example
- Java SE JDBC with Prepared Statement Parameterized Select Example
- Fix: UnsupportedClassVersionError: Unsupported major.minor version 63.0
- [Fix] Java Exception with Lambda - Cannot invoke because object is null
- 7 deadly java.lang.OutOfMemoryError in Java Programming
- How to Calculate the SHA Hash Value of a File in Java
- Java JDBC Connection with Database using SSL (https) URL
- How to Add/Subtract Days to the Current Date in Java
- Create Nested Directories using Java Code
- Spring Boot: JDBCTemplate BatchUpdate Update Query Example
- What is CA FE BA BE 00 00 00 3D in Java Class Bytecode
- Save Java Object as JSON file using Jackson Library
- Adding Custom ASCII Text Banner in Spring Boot Application
- [Fix] Java: Type argument cannot be of primitive type generics
- List of New Features in Java 11 (JEPs)
- Java: How to Add two Maps with example
- Java JDBC Transition Management using PreparedStatement Examples
- Understanding and Handling NullPointerException in Java: Tips and Tricks for Effective Debugging
- Steps of working with Stored Procedures using JDBCTemplate Spring Boot
- Java 8 java.util.Function and BiFunction Examples
- The Motivation Behind Generics in Java Programming
- Get Current Local Date and Time using Java 8 DateTime API
- Java: Convert Char to ASCII
- Deep Dive: Why avoid java.util.Date and Calendar Classes
- Fix: Error: Cannot find module /node-examples/init - JavaScript
- Spring Boot: @RequestBody not applicable to method - Java
- Powershell Comments Examples - Powershell
- How to read int value using Scanner Class Java - Java
- reCaptcha Verification expired. Check the checkbox again - Html
- How to upgrade Docker Desktop on Mac - MacOS
- PowerShell Switch Statement with Examples - Powershell
- How to install Java OpenJDK 11 on Alpine Linux - Java