天天看点

java中三种方式获得类的字节码文件对象

package get_class_method;

public class ReflectDemo {

    /**

     * @param args

     */

    public static void main(String[] args) {

        getClassObject1();

        getClassObject2();

        getClassObject3();

    }

    public static void getClassObject1(){

        Person p = new Person();

        System.out.println(p.getClass().getName());

    /*

     * 方式二:重点掌握

     * 通过给定类的字符串名称就可获得该类的字节码文件对象,更为扩展。

     * (第一种和第三种都不具有扩展性)

    */

    public static void getClassObject2(){

         Class<Person> pclass = null;

         try {

             /*

              * 类的名字一定要写全(包括该类的包)

              * 因为工程默认的路径查找时在bin目录或者src目录,如果类名不全,就无法找到该类

             */

             pclass = (Class<Person>) Class.forName("get_class_method.Person");

             System.out.println(pclass.getName());

         } catch (ClassNotFoundException e) {

             e.printStackTrace();

         }

     * 方式三:

     * 任何数据类型都有一个静态的属性 .class来获取其对应类的字节码文件对象

     * 相对简单,但是还是要明确用到类中的静态成员。还是不够扩展!

    public static void getClassObject3(){

        Class pclass = Person.class;

        System.out.println(pclass.getName());

}

本文转自 小眼儿 博客园博客,原文链接:http://www.cnblogs.com/hujunzheng/p/4055174.html,如需转载请自行联系原作者