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

  • 更新时间:2022-10-19 09:03:51
  • 编辑:袁锐智

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 获取字节码文件的几种方法,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关教程

  • Java Swing组件单选框JRadioButton用法示例

    Java Swing组件单选框JRadioButton用法示例

    为网友们分享了关于Java的教程,这篇文章主要介绍了Java Swing组件单选框JRadioButton用法,结合具体实例形式分析了Swing单选框JRadioButton的使用方法及相关操作注意事项,需要的朋友可以参考下

    发布时间:2022-06-23

  • Java实例化一个抽象类对象的教程

    大家都知道抽象类无法实例化,就无法创建对象。所以下面这篇文章主要给大家介绍了关于Java实例化一个抽象类对象的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴

    发布时间:2020-01-29

  • Java的校验银行卡功能实例代码

    这篇文章主要介绍了Java实现的校验银行卡功能,结合完整实例形式分析了java针对银行卡类型、归属地等信息的判断、读取相关操作技巧,需要的朋友可以参考下

    发布时间:2019-06-05

  • java中ThreadPoolExecutor知识点总结

    这篇文章主要介绍了java中ThreadPoolExecutor常识汇总,线程池技术在并发时经常会使用到,java中的线程池的使用是通过调用ThreadPoolExecutor来实现的,需要的朋友可以参考下

    发布时间:2019-07-31

  • java实现udp通讯的实例讲解

    这篇文章主要为大家详细介绍了java实现udp通讯的代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    发布时间:2019-06-09

  • Java中BigInteger大数字运算知识点整理

    在Java中提供了大数字的操作类,即 java.math.BigInteger 类与 java.math.BigDecimal 类。其中,BigInteger 类是针对大整数的处理类,这里有Integer 类的解释,使用方法和实例,需要的朋友可以参考下。

    发布时间:2019-10-29

  • java装饰者模式23种设计模式总结

    这篇文章主要为大家详细介绍了23种设计模式之java装饰者模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    发布时间:2020-01-23

  • Java微信分享接口开发示例效果

    这篇文章主要为大家详细介绍了Java微信分享接口开发的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    发布时间:2020-01-15

  • Java AbstractQueuedSynchronizer源码分析

    这篇文章主要为大家详细介绍了Java并发系列之AbstractQueuedSynchronizer源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    发布时间:2020-03-26

用户留言