概述
1.反射英文:reflection
反射库(reflection library)提供了一个非常丰富且精心设计的工具集,以便编写能够动态操纵Java代码的程序。
能够分析类能力的程序称为反射
2。反射机制可以用来:
1.在运行时分析类的能力;
2.在运行时查看对象,例如,编写了一个toString方法供所有类使用。
3.实现通用的数组操做代码。
利用Method对象,这个对象很像C++的函数指针。
3.Class
1.保存这些信息的类称为Class
如果类在一个包里,包的名字也作为类名的一部分,例如:
Random aRandom =new Random();
Class class1 =aRandom.getClass();
String name =class1.getName();
System.out.println(name);
还可以调用静态方法forName获得类名对象的Class对象。
String className ="java.util.Random";
try {
Class class1 =Class.forName(className);
System.out.println(class1);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
class。forName这个方法只有在className是类名或接口名时才能够执行。否则,forName方法将抛出一个异常,所以无论何时使用这个方法一定要加try catch语句。
还有一个非常有用的方法newInstance()可以动态的创建一个类的实例。例如
Object cl;
try {
cl =Class.forName("qcby.Person").newInstance();
Person person =(Person)cl;
System.out.println(person.getName());
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
这个方法的核心是,cl.Class.forName("包名.类名").newInstance();
将forName与newInstance配合起来使用,可以根据存储在字符串中的类名动态创建一个对象(实例)。
最后
以上就是执着航空为你收集整理的JAVA---反射类型的全部内容,希望文章能够帮你解决JAVA---反射类型所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复