java培训​反射指定类中的方法

2017-12-20

java培训反射指定类中的方法:


    //获取类中所有的方法。


    public static void method_1() throws Exception {


        Class clazz = Class.forName("cn.itcast.bean.Person");


        Method[] methods = clazz.getMethods();//获取的是该类中的公有方法和父类中的公有方法。


        methods = clazz.getDeclaredMethods();//获取本类中的方法,包含私有方法。


        for(Method method : methods) {


            System.out.println(method);


        }


    }


    //获取指定方法;


    public static void method_2() throws Exception {


        Class clazz = Class.forName("cn.itcast.bean.Person");


        //获取指定名称的方法。


        Method method = clazz.getMethod("show", int.class,String.class);


        //想要运行指定方法,当然是方法对象最清楚,为了让方法运行,调用方法对象的invoke方法即可,但是方法运行必须要明确所属的对象和具体的实际参数。


        Object obj = clazz.newInstance();


        method.invoke(obj, 39,"hehehe");//执行一个方法


    }


    //想要运行私有方法。


    public static void method_3() throws Exception {


        Class clazz = Class.forName("cn.itcast.bean.Person");


        //想要获取私有方法。必须用getDeclearMethod();


        Method method = clazz.getDeclaredMethod("method", null);


        // 私有方法不能直接访问,因为权限不够。非要访问,可以通过暴力的方式。


        method.setAccessible(true);//一般很少用,因为私有就是隐藏起来,所以尽量不要访问。


    }


    //反射静态方法。


    public static void method_4() throws Exception {


        Class clazz = Class.forName("cn.itcast.bean.Person");


        Method method = clazz.getMethod("function",null);


        method.invoke(null,null);


    }

更多关于java培训知识关注网址:www.javasm.cn

在线咨询
联系电话

15638502646