现有一个窗口基类,内有ShowModal方法,在需求在其派生类中,只要传递一个类,就能调用showModal的方法,当然,还要用泛型来做一下限制,如果传递的类参数不是以Window为基类的,在编译期就提示错误
class Window {
public void showModal() {
System.out.println("It's a base Window");
}
}
class SubWindow1 extends Window {
public void showModal() {
System.out.println("It's SubWindow1");
}
}
class SubWindow2 extends Window {
public void showModal() {
System.out.println("It's a SubWindow2");
}
}
public class WindowTest {
public static <T extends Window> void doTest(Class<T> clazz) {
try {
Window win = clazz.newInstance();
win.showModal();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
doTest(Window.class);
doTest(SubWindow1.class);
doTest(SubWindow2.class);
}
}