天天看点

java反射

在运行时判断任意一个对象所属的类;

在运行时构造任意一个类的对象;

在运行时判断任意一个类所具有的成员变量和方法;

在运行时调用任意一个对象的方法。

即在运行状态时,对于任何一个类,都可以获取这个类的所有属性和方法。

先看一个非常简单的例子,只有俩个类 

number.java

在reflecttest.java的main方法中通常这样就可使用number类了

这里要使用反射的方式如何去做?首先要获得对应对象的class对象,下面将详细看看如何获得对象。 

获取某个类或对象所对应的class对象的3种方式:

使用class类的静态方法forname,如class.forname(“java.lang.string”);

使用.class语法,如string.class;

使用对象的getclass方法,如

若想通过类的不带参数的构造方法来生成对象,我们有两种方式: 

1)先获得class对象,然后通过该class对象的newinstance方法直接获得即可。如

2)先获得class对象,然后通过该class对象获得所对应的constructor对象,再通过该constructor对象的newinstance方法生成。如

若想通过类的带参数的构造方法来生成对象,只能使用下面这种方式:

在这里,我们使用反射来获取number的方法

参考文章:

<a href="http://blog.csdn.net/furongkang/article/details/6966400">http://blog.csdn.net/furongkang/article/details/6966400</a>

转载:http://blog.csdn.net/xsf50717/article/details/51066853

继续阅读