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次方值
//用反射来调用此方法
}

最新文章

  1. Java初学者笔记
  2. 关于int,integer初始值问题
  3. idea jrebel6 安装,破解
  4. hive中行转换成列
  5. 看看你的正则行不行——正则优化一般的json字符串
  6. 他们在军训,我在搞 OI(Ending)
  7. Effective C++ -----条款37:绝不重新定义继承而来的缺省参数值
  8. input按钮上传按钮样式
  9. 第12周&amp;第13周
  10. [工具类]文件或文件夹xx已存在,则重命名为xx(n)
  11. R语言的日期运算
  12. DataGridView 列大写、列只能输入数字 分类: DataGridView 2014-12-07 08:40 332人阅读 评论(0) 收藏
  13. RESTful互联网框架
  14. 每天一个Linux命令—— crontab
  15. 自己定义定时器(Timer)
  16. 微软消息队列-MicroSoft Message Queue(MSMQ)队列的C#使用
  17. Android签名文件转化为pk8和pem来对apk重签名
  18. with check(转)
  19. centos实现两种秒级任务的简单方法
  20. Python调用7zip命令实现文件批量解压

热门文章

  1. SpringCloud Ribbon的分析(二)
  2. 你真的了解 i++, ++i 和 i+++++i 以及 i+++i++ 吗?
  3. springboot+springcloud集成jar
  4. Docker Compose 引用环境变量
  5. [三] java虚拟机 JVM字节码 指令集 bytecode 操作码 指令分类用法 助记符
  6. Java Pom.xml 详解
  7. Kotlin入门学习笔记
  8. windows安装elasticsearch
  9. CentOS下RabbitMq高可用集群环境搭建
  10. jsp基础语言-jsp动作