JAVA反射
2016-05-12 15:22
363 查看
import java.lang.reflect.*; public class TestReflection { public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { String str = "T"; Class c = Class.forName(str);//返回与带有给定字符串名的类或接口相关联的 Class 对象。 Object o = c.newInstance();//创建此 Class 对象所表示的类的一个新实例。 Method[] methods = c.getMethods(); for(Method m : methods) { if(m.getName().equals("mm")) { m.invoke(o);//对带有指定参数的指定对象调用由此 Method 对象表示的底层方法。 } if(m.getName().equals("m1")) { m.invoke(o, 1, 2); for(Class paramType : m.getParameterTypes()) {//对带有指定参数的指定对象调用由此 Method 对象表示的底层方法。 System.out.println(paramType.getName()); } } if(m.getName().equals("getS")) { Class returnType = m.getReturnType();//返回一个 Class 对象,该对象描述了此 Method 对象所表示的方法的正式返回类型。 System.out.println(returnType.getName()); } } } } class T { static{ System.out.println("T loaded!"); } public T() { System.out.println("T constructed!"); } int i; String s; public void m1(int i ,int j) { this.i = i + j; System.out.println(this.i); } public void mm() { System.out.println("m invoked"); } public String getS() { return s; } }
相关文章推荐
- spring mvc 方法注解拦截器
- java日志文件log4j.properties配置详解
- java程序故障排查脚本之——CPU占用高
- 【第七章】 对JDBC的支持 之 7.4 Spring提供的其它帮助 ——跟我学spring3
- 深入理解Java 对象和类
- struts2中jsp前台传值到后台action的三种方式
- IntelliJ IDEA导出Java 可执行Jar包
- Java Thread.join()方法
- <context annotation-config />标签意义
- MessageDigest详解(Java自带加密)
- java序列化
- RxJava中ActionX与FuncX的区别
- java实现简单的单点登录
- 正确配置spring aop,在controller中使用AOP
- json和Java互换
- ACM20 吝啬的国度 Java
- RandomAccessFile类使用详解
- Eclipse中导入外部jar包
- json直接转成Java能用的变量
- 为什么Java的Web开发需要用到Struts呢?