더북(TheBook)

4.5.4 객체 생성


객체를 생성하려면 먼저 Constructor 객체를 찾은 후 해당 객체의 newInstance 메서드를 호출해야 한다. 예를 들어 어떤 클래스에 int 매개변수를 가진 공개 생성자가 있다는 사실을 안다고 하자. 그러면 클래스의 새 인스턴스를 다음과 같이 생성할 수 있다.

Constructor constr = cl.getConstructor(int.class);

Object obj = constr.newInstance(42);


icon Caution

Class 클래스에는 클래스의 인수 없는 생성자를 이용해 객체를 생성하는 newInstance 메서드가 있다. 이 메서드에는 이상한 결함이 있어 현재는 사용을 권장하지 않는다(deprecated). 인수 없는 생성자가 검사 예외를 던지면 newInstance 메서드는 해당 예외를 선언하지 않았는데도 다시 예외를 던지므로 컴파일 시간에 검사 예외를 검사하지 못한다. 그러므로 이 메서드 대신 cl.getConstructor().newInstance()를 호출해야 한다. 이 메서드는 어떤 예외든 InvocationTargetException으로 감싸 준다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.