【反射】java获取字节码的几种方式

<span style="white-space:pre">	</span>获取字节码的方式也是一个在面试时候经常问到的问题,下面
package Reflect;
class Demo{
    //other codes...
}
 
class hello{
    public static void main(String[] args) {
        Class<?> demo1=null;
        Class<?> demo2=null;
        Class<?> demo3=null;
        try{
            //一般尽量采用这种形式
            demo1=Class.forName("Reflect.Demo");
        }catch(Exception e){
            e.printStackTrace();
        }
        demo2=new Demo().getClass();
        demo3=Demo.class;
         
        System.out.println("类名称   "+demo1.getName());
        System.out.println("类名称   "+demo2.getName());
        System.out.println("类名称   "+demo3.getName());
         
    }
}
【运行结果】:

类名称 Reflect.Demo

类名称 Reflect.Demo

类名称 Reflect.Demo


从以上代码示例,可以看出获取到一个类文件主要有三种方式:
①:类名.class方式获取;
②:对象.getClass()方法;
③:class.foName()方法,里面接收的是全类名,即包名.类名。

你可能感兴趣的:(字节码,反射)