当一个类被加载以后,Java虚拟机会自动产生一个class对象。通过这个Class对象我们就能获得加载到虚拟机当中Class对象对应的方法、成员以及构造方法的的声明和定义等信息。
获取Class对象共有以下三种方法。
第一种
类名.class
public class fg { public static void main(String[] args) { // TODO Auto-generated method stub Class c = fg.class;//第一种获取Class类 System.out.println("包路径"+c.getPackage()); System.out.println("类名称"+c.getPackage()); System.out.println("包继承类"+c.getPackage()); } }
运行结果:
第二种
类名 对象名 = new 类名();
对象名.getClass();
public class fg { public static void main(String[] args) { // TODO Auto-generated method stub fg d =new fg();//第二种获取Class类 Class c = fg.class;//第一种获取Class类 System.out.println("包路径"+c.getPackage()); System.out.println("类名称"+c.getPackage()); System.out.println("包继承类"+c.getPackage()); } }
运行结果如上图
第三种
Class.forName(“包名+类名”){该种方法会抛出ClassNotFoundException异常,需要用try-catch捕获}
public class fg { public static void main(String[] args) { // TODO Auto-generated method stub try {//第三种获取Class类 Class c = Class.forName("com.wx.fg"); System.out.println("包路径"+c.getPackage()); System.out.println("类名称"+c.getPackage()); System.out.println("包继承类"+c.getPackage()); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } }