Class demoClass = Class.forName(classname);
Constructor demoConstructor = demoClass.getConstructor(new Class[]{SwingSet2.class});
demo = (DemoModule) demoConstructor.newInstance(new Object[]{this});
addDemo(demo);这是JDK自带的DEMO SwingSet2里的一段代码.
关键在于那句 SwingSet2.class,这是什么意思?
Constructor demoConstructor = demoClass.getConstructor(new Class[]{SwingSet2.class});
demo = (DemoModule) demoConstructor.newInstance(new Object[]{this});
addDemo(demo);这是JDK自带的DEMO SwingSet2里的一段代码.
关键在于那句 SwingSet2.class,这是什么意思?
也就是在demoClass中找到public XXXClass(SwingSet2 set) {...}这个构造函数如果不指定参数,XXXClass中可能存在多个构造函数的,就无法找到准确的了 demo = (DemoModule) demoConstructor.newInstance(new Object[]{this});
就是调用上述的构造函数创建出一个新的对象了
Class cl2 = int.class; 这里的Class对象实际上代表的是一种类型,而这个类型未必是一种类,如int不是类,但int.class是一个Class对象.
*.class 表示是一个java定义的类,而不是实例