zoukankan      html  css  js  c++  java
  • 四 Struts2 反射实现

    package com.myreflect;
    
    import java.lang.reflect.Constructor;
    import java.lang.reflect.Field;
    import java.lang.reflect.Method;
    
    public class ReflectDemo {
        public static void main(String[] args) throws Exception {
            //1.假设我们已经解析struts.xml拿到com.action.LoginAction字符串
            String path = "com.action.LoginAction";
            //2.用反射原理来构造此类对象
            Class c = Class.forName(path);
            //获取所有属性
            Field[] fs = c.getFields();
            Field[] fs2 = c.getDeclaredFields();
            for (int i = 0; i < fs.length; i++) {
                System.out.println(fs[i].getName());
            }
            for (int i = 0; i < fs2.length; i++) {
                System.out.println("===="+fs2[i].getName());
            }
            
            //获取所有方法
            Method[] ms = c.getDeclaredMethods();
            for (int i = 0; i < ms.length; i++) {
                System.out.println("方法名="+ms[i].getName());
            }
            
            //怎么执行方法
            //第一步:构造类的对象,获取类型的构造方法
            //c.getConstructor(new Class[]{String.class,Integer.class});
            Constructor cons = c.getConstructor(new Class[]{});
            //通过构造器构造实例
            //cons.newInstance(new Object[]{"admin",123});
            Object obj = cons.newInstance(new Object[]{});
            
            //2.执行方法   获取类型中execute方法
            Method exe = c.getDeclaredMethod("execute", new Class[]{});
            Object result = exe.invoke(obj, new Object[]{});
            
            System.out.println("test方法执行的返回结果是:"+result);
        }
        
        public ReflectDemo() {
            
        }
        
        public ReflectDemo(String name,int num) {
            
        }
        
        //写一个类,写一个方法完成两个数求幂值  x的n次方值
        //用反射来调用此方法
    }
  • 相关阅读:
    linux 下安装mongodb
    python 多线程, 多进程, 协程
    5.rabbitmq 主题
    4.rabbitmq 路由
    e.target与e.currentTarget对比
    使用ffmpeg下载m3u8流媒体
    本机添加多个git仓库账号
    IE hack 条件语句
    IE8 兼容 getElementsByClassName
    IE 下 log 调试的一点不同
  • 原文地址:https://www.cnblogs.com/wlxslsb/p/10784876.html
Copyright © 2011-2022 走看看