什么叫做反射 能够分析类能力的程序称为反射 1.在运行中分析类的能力
2.在运行中查看对象
3.实现通用的数组代码
4.利用Method对象
class类 在程序运行期间,java运行时系统始终为所有的对象维护一个被称为运行时识别的类型标识。这个信息跟踪着每个对象的所属类型,虚拟机利用运行时的类型信息选择相应的方法执行。
然而可以通过专门的java类来访问这些信息。保存这些类被称为class
public class class_test {
public static void main(String[] args) {
classwe w=new classwe();
// TODO Auto-generated method stub
Class cl=w.getClass();
System.out.println(cl);
System.out.println(cl.getName());
}
}
class classwe {
String name="wq";
}
还可以用静态方法forname获取类名class对象
public class class_test {
public static void main(String[] args) {
String classname="class_name.classwe";
try {
Class cl=Class.forName(classname);
System.out.println(cl.getName());
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class classwe {
String name="wq";
}
newInstance()创建一个类的实例
String s= "java.util.Date";
Object m=Class.forname(s).newInstance;
public class class_test {
public static void main(String[] args) {
String s="java.util.Date";
Object m = null;
try {
try {
m = Class.forName(s).newInstance();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(m);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
捕获异常