5.反射例子
来源:互联网 发布:js导入导出excel数据 编辑:程序博客网 时间:2024/04/27 04:27
通过学习了解到, Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。
Java反射机制主要提供下面几种用途:
- 在运行时判断任意一个对象所属的类
- 在运行时构造任意一个类的对象
- 在运行时判断任意一个类所具有的成员变量和方法
- 在运行时调用任意一个对象的方法
一个例子程序就能很好的解释反射了.
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class Reflection {
public static void main(String[] args) throws ClassNotFoundException,
InstantiationException, IllegalAccessException,
IllegalArgumentException, InvocationTargetException {
String str = "T";
Class c = Class.forName(str);// Class类表示正在运行的类,它没有构造方法,现在的class类所表示的类是T
Object o = c.newInstance();// 创建正在运行的Class对象所表示的类的一个实例 此时就是 new T()
// 相当于 Object o =new T() o就可以当一个正常的实例T()使用了 也可以直接转换 T
// o=(T)c.newInstance()
System.out.println(o.getClass().getName());
//Field 类能拿到一个类的属性 参考java.lang.reflect.*
Method methods[] = c.getMethods();
for (Method m : methods) {
if (m.getName().equals("f")) {
// m.invoke(o, null);//调用m这个方法 相当于o.m()
// 第二个参数是m这个方法的可变参数,可以根据情况传0-n个参数
m.invoke(o, 1, 2);
// 例如,m.invoke(o,"aa",5,"ss")
//m.getReturnType() 拿到返回值类型
Object ps[] = m.getParameterTypes();//可以查看这个方法的参数类型
for (Object p : ps) {
System.out.println(p.toString());//一次打印出方法m的参数类型int,int
}
}
}
}
}
class T {
public T() {
System.out.println("T constractor!");
}
public void f(int i, int j) {
System.out.println("T fff");
}
}
- 5.反射例子
- 反射例子
- 反射 -- 例子
- 反射例子
- 反射例子一
- 反射例子二
- 反射的例子
- java 反射经典例子
- Java反射例子
- java反射实现例子
- java反射的例子
- c#反射入门例子
- C#反射例子
- c#反射用法例子
- 反射小例子
- JAVA 反射例子
- java类反射例子
- java反射小例子
- 字母重排(字符串处理)
- 使用C语言读取bmp文件数据
- 我的Android笔记(十一)——使用Preference保存设置
- OpenCV 中结构体IplImage 成员width widthStep使用注意事项
- CRC校验实现原理以及程序实现研究
- 5.反射例子
- JSP学习 —— 开篇:JSP,servlet容器,Tomcat,servlet容器之间的关系
- 为什么在google源码中往往能看到使用 二进制数据
- 6. java基础学习总结1
- 2014北京网络预选赛1006(贪心)HDU5037
- Jsp学习——servlet详解
- Directx 9.0/9.0c 在vs2008 里面的环境配置
- 抛弃C程序设计中的谬误与恶习(3)
- 关于经典开源框架STRUTS2的使用