package proxy.three;
public class TestA2 {
static TestIntfaceA2 instanceA;
static TestIntfaceB2 instanceB;
public static void createProxy() {
Object o = TestInvocationHandlerA1.newInstance(TestIntfaceA2.class, TestIntfaceB2.class);
System.out.println("first interface is " + o.getClass().getInterfaces()[0]);
System.out.println("second interface is " + o.getClass().getInterfaces()[1]);
instanceB = (TestIntfaceB2) o;
instanceA = (TestIntfaceA2) o;
}
public static void runMA() {
System.out.println("instance type is " + instanceA.getClass());
instanceA.ma();
}
public static void runNA() {
System.out.println("instance type is " + instanceA.getClass());
instanceA.na();
}
public static void runMB() {
System.out.println("instance type is " + instanceB.getClass());
instanceB.mb();
}
public static void runNB() {
if (instanceB == null) {
throw new IllegalStateException();
}
System.out.println("instance type is " + instanceB.getClass());
instanceB.nb();
}
}