文笔不好这次就不写太多字了,直接贴代码,上半部有注释
package red.sea.daelly.test;
public class Main {
/**
* Class类继承自Object
*
* Class类的获取方式:
* 1)、Class的静态方法forName Class.forName(className);
* 2)、类的class属性 Test.class;
* 3)、类实例的getClass方法 Test test; test.getClass();
*
* Class有一个私有的构造函数,我们不能实例化一个Class对象,Class对象的实例化由jvm完成,在jvm加载这个类的时候完成。
*
* 可以将Class看做一个普通的“对jvm里加载的类”的抽象的普通类;他有很多的get方法,获取和这个类定义相关的一些信息;
*
* Interface的这个抽象也是Class类
*
* jvm管理的每个类都是独一无二的Class对象,所以可以用“==”来比较两个类实例如:
* if(e.getClass()==Test.class)//这是合法的比较
* 一个小技巧:
* Object obj = Class.forName("red.sea.daelly.test.Test").newInstance();//动态通过类型创建一个类的实例对象
*
* @param args
*/
public static void main(String[] args) {
Class<?> classz = Test.class;
System.out.println("classz.getCanonicalName():"+classz.getCanonicalName());
System.out.println("classz.getModifiers():"+classz.getModifiers());
System.out.println("classz.getName():"+classz.getName());
System.out.println("classz.getSimpleName():"+classz.getSimpleName());
System.out.println("classz.getAnnotations():"+classz.getAnnotations());
System.out.println("classz.getClass():"+classz.getClass());
System.out.println("classz.getClasses():"+classz.getClasses());
System.out.println("classz.getClassLoader():"+classz.getClassLoader());
System.out.println("classz.getComponentType():"+classz.getComponentType());
System.out.println("classz.getConstructors():"+classz.getConstructors());
System.out.println("classz.getDeclaredAnnotations():"+classz.getDeclaredAnnotations());
System.out.println("classz.getDeclaredClasses():"+classz.getDeclaredClasses());
System.out.println("classz.getDeclaredConstructors():"+classz.getDeclaredConstructors());
System.out.println("classz.getDeclaredFields():"+classz.getDeclaredFields());
System.out.println("classz.getDeclaredMethods():"+classz.getDeclaredMethods());
System.out.println("classz.getDeclaringClass():"+classz.getDeclaringClass());
System.out.println("classz.getEnclosingClass():"+classz.getEnclosingClass());
System.out.println("classz.getMethods():"+classz.getMethods());
System.out.println("classz.getFields():"+classz.getFields());
System.out.println("classz.getInterfaces():"+classz.getInterfaces());
System.out.println("classz.getPackage():"+classz.getPackage());
System.out.println("classz.getSuperclass():"+classz.getSuperclass());
System.out.println("classz.getGenericInterfaces():"+classz.getGenericInterfaces());
System.out.println("classz.getGenericSuperclass():"+classz.getGenericSuperclass());
System.out.println(classz);
}
}