JAVA反射机制详解&Demo

qsuron 发布于 2014-06-03 Java 55 次阅读 10 条评论 363 字 预计阅读时间: 2 分钟


什么是反射?俗话说的好,反射反射,程序员的快乐!不管是java本身,还是以java为开发底层的各种开发语言如android,还有我最亲爱的libgdx等等,都在不少的地方用到了java的反射机制。可以说,如果没有反射机制,java就插翅难飞。

JAVA反射机制是在运行状态中,对于任意一个类,都能够得到这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制.

反射就是让你可以通过名称来得到对象(类,属性,方法)的技术。例如Class.forName("ClassName")

  1. 知道了类名就可以生成一个类的实例;
  2. 知道了方法名,就可以调用这个方法;
  3. 知道了属性名就可以访问这个属性的值。

利用类的getClass()来进行类的访问,下面是一个简单的例子。

public class Demo {
	public static void main(String[] args) {
		Long num = 1l;
	    Class myclass = num.getClass();
	    System.out.println("输出类"+myclass.getSimpleName()+"的继承信息:");
	    superClass(myclass);//采用递归输出
	}

	/**递归输出类的继承信息
	 * @param c 类
	 */
	public static void superClass(Class c){
		if(!c.getSimpleName().equalsIgnoreCase("Object")){
			//如果不是Object类,就继续遍历上一个
			superClass(c.getSuperclass());
		}
		System.out.println(c.getSimpleName());
	}
}

 未完待续。

代码敲的累了,换个中文悠闲悠闲。
最后更新于 2014-06-03