package testreflect;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.logging.Level;
import java.util.logging.Logger;
public class TestReflect {
public static void main(String[] args) {
<span style="color: #3366ff;"><span style="color: #000000;">ClassLoader </span>loader <span style="color: #000000;">= Thread.currentThread().getContextClassLoader();</span></span>
Class clazz = null;
try {
<span style="color: #3366ff;"><span style="color: #000000;">clazz =</span> <span style="color: #000000;">loader.</span>loadClass<span style="color: #000000;">("testreflect.Car");</span></span>
Constructor <span style="color: #3366ff;">constructor</span> = clazz.getDeclaredConstructor((Class[])null);
Car car = (Car)<span style="color: #3366ff;">constructor.newInstance();</span>
Method setName = clazz.<span style="color: #3366ff;">getMethod</span>("setName", String.class);
setName.<span style="color: #3366ff;">invoke</span>(car, "audi");
Method setColor = clazz.getMethod("setColor", String.class);
setColor.invoke(car, "red");
Method setPrice = clazz.getMethod("setPrice", int.class);
setPrice.invoke(car, 1000);
car.printDetails();
} catch (ClassNotFoundException ex) {
System.out.println("Exception caught");
} catch (NoSuchMethodException ex) {
System.out.println("Exception caught1");
} catch (SecurityException ex) {
System.out.println("Exception caught2");
} catch (InstantiationException ex) {
System.out.println("Exception caught3");
} catch (IllegalAccessException ex) {
System.out.println("Exception caught4");
} catch (IllegalArgumentException ex) {
System.out.println("Exception caught5");
} catch (InvocationTargetException ex) {
System.out.println("Exception caught6");
}
}
}