Java开发

JAVA反射机制详解&Demo

页面
字体
小树 · 6月3日 · 2014年

什么是反射?俗话说的好,反射反射,程序员的快乐!不管是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());
	}
}

 未完待续。

转载必须注明来源: 小树技术博客 » JAVA反射机制详解&Demo

14 条回应
  1. seo2015-6-17 · 15:48

  2. 花呗套现2015-5-15 · 9:40

    JAVA反射机制

  3. 孝感婚纱摄影2015-5-14 · 15:24

    呵呵呵呵

  4. 网站建设2014-9-22 · 12:03

    不明觉厉,打个酱油

    • 小树2014-9-22 · 14:14

      学java不能不用反射。

  5. 世界之最2014-6-6 · 11:56

    java?sun公司好久不在了吧

  6. 微历史2014-6-6 · 10:32

    跟.net下的反射并无二致

  7. 恒创主机2014-6-4 · 11:52

    看起来还不错。

    • 小树2014-6-4 · 12:55

      欢迎来访!