• 四 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次方值
        //用反射来调用此方法
    }
  • 相关阅读:
    SLAB
    /proc/vmstat 详解
    swap空间可以有效缓解内存压力
    内存问题排查手段及相关文件介绍
    buddyinfo 内存碎片数据采集
    取得Linux系统的各种统计信息
    HTML的常用总结
    采用jquery同django实现ajax通信
    Django的quarySet
    Django-MySQL数据库使用01
  • 原文地址:https://www.cnblogs.com/wlxslsb/p/10784876.html
Copyright © 2020-2023  润新知