리플렉션은 동적으로 클래스를 로드하고, 객체를 인스턴스화하고, 메서드를 호출할 수 있습니다. 이제 다음 예를 들어 설명하겠습니다.
1. 클래스를 로드합니다.
Class clazz = Class.forName("java.lang.String"); //이 코드는 String 클래스의 클래스 객체를 가져옵니다. 매개변수는 패키지 이름을 채웁니다.
URLClassLoader를 사용하면 로컬 또는 원격 jar 패키지를 로드하고 loadclass 메소드를 통해 특정 클래스 객체를 가져올 수 있습니다.
2. 객체를 인스턴스화합니다.
기본 생성자를 통해 객체가 인스턴스화되면
clazz..newInstance();
매개변수화된 생성자를 사용하여 객체를 인스턴스화하려면 다음 코드를 사용할 수 있습니다. Constructor> myConstructor = myClass.getConstructor(parameterTypes);//생성자 객체를 가져옵니다. 여기서 매개변수 유형은 Class>... 매개변수 유형(예: String.class, int.class 등)입니다. 그런 다음 생성자 객체를 통해 인스턴스화된 객체를 가져옵니다. myConstructor.newInstance("xxx",123); 생성자의 특정 생성 매개변수를 채웁니다.