本帖最后由 Morgan 于 2015-7-4 17:14 编辑
1.反射就是把java类中的各种成分映射成相应的java类。通过Class的对象来得到各个成员对象,然后在使用这些对象。 2.Constructor类:从Class类对象得到 getConstructor(Class<?>...parameterTypes) 返回一个 Constructor 对象,它反映此 Class 对象所表示的类的指定公共构造方法。注意是公共构造方法。如果要得到无参构造方法就表明可变参数列表里面什么也没有。如果是多个参数逗号也可以省略不写,就表示没有。 例子如下: public class Test8 {
public static void main(String[] args) { try { Class<?> clazz = Class.forName("com.itheima.Person1");// 加载字节码文件 Person1 person = (Person1) clazz.newInstance();//创建Person实例 Method method = clazz.getMethod("printSomething");//获取方法。这里其实是两个参数,但是后面的参数是空的所以逗号也可以省略。 method.invoke(person);//在得到的person实例上调用获取到的方法。这里的invoke也是两个参数,但由于这个方法不接受参数,所以后面的可变参数里面什么也没有,所以连逗号也可以省略。但如果加逗号后面还什么也不写会报错。 } catch (Exception e) { e.printStackTrace(); }
}
}
class Person1 { public void printSomething() { System.out.println("Hello Java!"); } }
|