자바 생성자는 값을 반환할 수 없습니다
결론부터 말하면, 자바의 생성자(Constructor)는 어떠한 값도 반환할 수 없습니다. 생성자는 객체를 초기화하는 특수한 목적의 메서드이기 때문에 반환 타입 자체를 가지지 않으며, 심지어 void도 명시할 수 없습니다.
만약 생성자를 호출한 결과로 어떤 값을 받아야 하는 상황이라면, 대신 필요한 생성자를 호출하고 원하는 값을 반환하는 별도의 메서드를 만드는 것이 올바른 해결 방법입니다.
대안 예제 코드
아래 예제처럼 정적 팩토리 메서드(static factory method) 패턴을 활용하면, 내부에서 생성자를 호출하고 그 인스턴스를 반환값으로 돌려줄 수 있습니다.
public class Tester {
public Tester(){}
public static Tester getInstance(){
Tester tester = new Tester();
return tester;
}
}코드 설명
Tester(){}: 기본 생성자로, 객체 생성 시 초기화 작업을 담당합니다.getInstance(): static 메서드로, 내부에서 new 키워드를 통해 생성자를 호출한 뒤 생성된Tester객체를 반환합니다.
이렇게 하면 호출하는 쪽에서는 Tester.getInstance() 형태로 메서드를 호출하여 완성된 객체를 값처럼 전달받아 사용할 수 있습니다. 이 방식은 싱글톤(Singleton) 패턴 구현이나 객체 생성 로직을 캡슐화할 때도 널리 활용됩니다.