在运行时判断任意一个对象所属的类;
在运行时构造任意一个类的对象;
在运行时判断任意一个类所具有的成员变量和方法;
在运行时调用任意一个对象的方法。
即在运行状态时,对于任何一个类,都可以获取这个类的所有属性和方法。
先看一个非常简单的例子,只有俩个类
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