zoukankan      html  css  js  c++  java
  • 利用反射调用

    /**
         * getDeclaredConstructor(Class<?>... parameterTypes)
         * 这个方法会返回制定参数类型的所有构造器,包括public的和非public的,当然也包括private的。
         * getDeclaredConstructors()的返回结果就没有参数类型的过滤了。
         *
         * 再来看getConstructor(Class<?>... parameterTypes)
         * 这个方法返回的是上面那个方法返回结果的子集,只返回制定参数类型访问权限是public的构造器。
         * getConstructors()的返回结果同样也没有参数类型的过滤。
         *
         */
        public static void main(String[] args) {
            URL confUrl = WadeSafeConf.class.getResource("/");
            String confFile = (confUrl==null?"":confUrl) + "WadeSafe.conf";
            if(confFile.startsWith("file:")){
                confFile = confFile.substring(5);
            }
            WadeSafeConf wadeSafeConf = new WadeSafeConf(confFile);
            String beanCls = wadeSafeConf.getConfParam("conf", "cfg.bean.class","com.wade.safe.bean.impl.WadeSimpleBean");
            System.out.println(beanCls);
            Class c = null;
            try {
                c = Class.forName(beanCls);
                Method[] methods = c.getDeclaredMethods();
                for (int i=0;i<methods.length;i++){
                    String methodName=methods[i].getName();
                    System.out.println(methods[i].getReturnType().getName());
    //                Class<?>[] parameterTypes = methods[i].getParameterTypes();
    //                for(int j=0;j<parameterTypes.length;j++){
    //                    String parameterName = parameterTypes[j].getName();
    //                    System.out.println("方法"+methodName+"的参数类型是"+parameterName);
    //                }
                }
    //            Constructor con = c.getConstructor(); // 构造器调用
    //            Object wadeSimpleBean = con.newInstance();
    //            Method verifyLimitStaff = c.getMethod("verifyLimitStaff", WadeRequestWrapper.class, HttpServletResponse.class);
    //            Object ob1  = verifyLimitStaff.invoke(wadeSimpleBean);
    //            System.out.println(ob1);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
        }
  • 相关阅读:
    Node.js Express 框架
    Node.js RESTful API
    vim中自动格式化代码
    如何去掉linux配置文件的注释行和空行
    ImmutableJS
    JavaScript的相关知识
    React容器组件和展示组件
    node.js
    svg学习
    Redux 基础概念
  • 原文地址:https://www.cnblogs.com/Tonyzczc/p/10476550.html
Copyright © 2011-2022 走看看