反射

来源:互联网 发布:手机怎样开淘宝店 编辑:程序博客网 时间:2024/06/06 00:23

java 反射

概念:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。

概念抽象难于理解,个人理解就是从.class→.java

主要反射类

java.lang.Class;                

java.lang.reflect.Constructor;

java.lang.reflect.Field;        

java.lang.reflect.Method;

java.lang.reflect.Modifier;

示例代码

/**     * 获取反射对象三种方式     * @throws InstantiationException     * @throws IllegalAccessException     * @throws ClassNotFoundException     */    @Test    public void testClass() throws InstantiationException, IllegalAccessException, ClassNotFoundException {        //①        Class clazz1 = Integer.class;        //②        Class clazz2 = Class.forName("java.lang.Integer");        //③        Class clazz3 = new Integer("1").getClass();        System.out.println(clazz1+":"+clazz2+":"+clazz3);            }        /**     * 通过反射获取对象     * @throws InstantiationException     * @throws IllegalAccessException     */    @Test    public void testCrete() throws InstantiationException, IllegalAccessException {        Class clazz = Person.class;        Person p = (Person) clazz.newInstance();        p.setName("xxx");        System.out.println(p);    }        /**     * 获取属性     * @throws IllegalAccessException      * @throws InstantiationException      */    @Test    public void testFileds() throws InstantiationException, IllegalAccessException {        Class clazz = Person.class;        Field[] fields = clazz.getDeclaredFields();        for(Field f : fields) {            System.out.println(f.getName()+"::"+f.getType().getName()+"::"+f.getGenericType());        }    }        /**     * 获取方法     */    @Test    public void testMethods() {        Class clazz = Person.class;        Method[] methods = clazz.getMethods();        for(Method method:methods) {            System.out.println(method.getModifiers()+" "+method.getName() +" "+method.getReturnType());            for(Type t : method.getGenericParameterTypes()) {                System.out.println("--"+t);            }        }    }


0 0
原创粉丝点击