java.lang.Class类是所有反射操作的源头,即:所有的反射操作都要从此类开始进行,而最关键的是,这个类有三种实例化方式:
1.调用Object类中的getClass方法(很少用)
public static void main(String[] args) throws Exception{
Date date=new Date();
Class <?> cls=date.getClass();
System.out.println(cls);
}
2.使用"类.class"取得:(最重要的用法 Spring Mybatis框架原理)
public static void main(String[] args) throws Exception{
Class <?> cls=Date.class;
System.out.println(cls);
}
之前是在产生了类的实例化对象之后取得的Class类对象,但是此时并没有实例化对象产生
3.调用Class类提供的一个方法(用的最多)
public static Class<?> forName(String className)
throws ClassNotFoundException
实例化Class类对象。
public static void main(String[] args) throws Exception{
Class <?> cls=Class.forName("java.util.Date");
System.out.println(cls);
}
第三种方式可以不用import语句导入一个明确的类,而类名称是采用字符串的形式进行描述的(第一第二种需要import)