欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java 获取字节码文件的几种方法总结

程序员文章站 2024-02-25 16:43:09
java 获取字节码文件的几种方法总结 在本文中,以person类为例,将分别演示获取该类字节码文件的三种方式, 其具体思想及代码如下所示: public c...

java 获取字节码文件的几种方法总结

在本文中,以person类为例,将分别演示获取该类字节码文件的三种方式,

其具体思想及代码如下所示:

public class person {
  private int age;
  private string name;

  public person() {
    system.out.println("person run");
  }

  public person(string name, int age) {
    this.age = age;
    this.name = name;
    system.out.println("person param run..." + this.name + ":" + this.age);
  }

  public void showinfo() {
    system.out.println(this.name + "......" + this.age);
  }
}

public class getclassfile {
  public static void main(string[] args) throws classnotfoundexception {
    getclassobject_3();
  }

  /**
   * 通过给定的类的字符串名称就可以获取该类的字节码文件,更利于扩展
   * 可以用class类中的"forname()"方法来完成
   */
  public static void getclassobject_3() throws classnotfoundexception {
  // 包名一定要写全,否则会报"java.lang.classnotfoundexception"异常
    string classname = "src.person"; 
    class clazz = class.forname(classname);
    system.out.println(clazz);
  }

  /**
   * 任何数据类型都具备一个静态属性
   * 通过".class"来获取对应的class对象
   * 扩展性较差
   */
  public static void getclassobject_2() {
    class clazz = person.class;
    class clazz1 = person.class;
    system.out.println(clazz == clazz1);
  }

  /**
   * 运用object类中的getclass方法
   * 用这个方法时,必须明确具体的类,并创建对象
   * 比较麻烦
   */
  public static void getclassobject_1() {
    person p = new person();
    class clazz = p.getclass();
    person p1 = new person();
    class clazz1 = p1.getclass();
    system.out.println(clazz == clazz1);
  }
}

以上就是java 获取字节码文件的几种方法,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!