码迷,mamicode.com
首页 > 编程语言 > 详细

java反射机制

时间:2015-07-30 11:38:20      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:

java反射机制

一、

1、了解反射的作用

2、掌握Class类的操作及使用

3、可以通过反射取得一个类的实例化对象

4、可以通过反射取得类的结构,可以通过反射进行属性方法的调用

二、认识反射

Java反射机制就好像是一面镜子,照镜子可以发现自己的所有的特征,一个类可以通过反射(照镜子)发现自己的所有的方法。

反射机制在框架上面运用的尤其多!(怎么应用的?)

技术分享

比如,javascript就是动态语言,有如下代码:

Var  a=1;

a=”weiwei”;

a=false;

由这三行代码可知:a可以在运行时动态的改变,由int类型改为字符串类型,又由字符串类型变为boolean类型,即在程序运行时,允许改变程序结构或变量类型,这就是动态语言。而java、C++等式不允许这样的如果a是int类型,就不能随便改动了。所以说java是静态语言。

解释:Class.forName("org.lxh.demo.classdemo02.Person")。//程序在编译的时候并不知道org.lxh.demo.classdemo02.Person是一个person类,只知道它是一个字符窜,只有在程序运行的时候才知道是个person类,即我们可以与运行时加载、探知、使用编译期间完全未知的classes。

技术分享

如下所以:运用getDeclaredMethods()方法,可以知道一个已知名称的类中有哪些方法的申明,包括私有方法。

技术分享

正常情况下,一个类要想使用,则必须找到此类,然后通过此类实例化一个对象,必须先有类再有对象,那么现在如果想通过一个对象找到其所在的类呢?

三、认识Class

    在反射机制中,Class类是一个操作的源头,所有的反射操作从此类展开,但是如果想实例化此类的对象,可以通过三种方式;

1、        Object类的getClass()方法

2、        通过类Class的形式,如:Person.class(第二常用)

3、        Class.forName()(最常用)

 

四、通过Class类实例化对象

Class类的使用中,实例化对象是最常用的一种操作,而且日后所有框架的各个程序的实现原理都是依靠Class类完成的。

1、        实例化无参构造的类

如果一个类中存在无参的构造方法,那么就可以直接通过Class类进行实例化操作。

现有如下代码:

步骤:1、获取class对象

       2、生产类的实例

package org.lxh.demo.classdemo02;
public class Person {
	public String toString() {
		return "hello world!!!";
	}
}
public class InstanceDemo01 {
public static void main(String[] args) {
		Class<?> c = null;
		try {
			c = Class.forName("org.lxh.demo.classdemo02.Person");//先实例化对象
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		try {
			Person p = (Person) c.newInstance();//创建对象
			System.out.println(p);
		} catch (InstantiationException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		}
	}
}





java反射机制

标签:

原文地址:http://my.oschina.net/weiweiblog/blog/485433

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!