A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

本帖最后由 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!");
        }
}





0 个回复

您需要登录后才可以回帖 登录 | 加入黑马