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次方值
        //用反射来调用此方法
    }
  • 相关阅读:
    java基础之System类
    java基础之System类
    java基础之Random类
    java基础之Math类
    java基础之Math类
    java基础之Character类概述
    MySQL数据库
    JavaScript面向对象与原型
    PHP
    sass基础用法
  • 原文地址:https://www.cnblogs.com/wlxslsb/p/10784876.html
Copyright © 2011-2022 走看看