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

 更新时间:2017年08月28日 10:22:39   投稿:lqh  
这篇文章主要介绍了java 获取字节码文件的几种方法总结的相关资料,这里总结了三种方法帮助大家实现该功能,需要的朋友可以参考下

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迭代器和for循环优劣详解

    java迭代器和for循环优劣详解

    在本篇文章里小编给大家整理的是一篇关于java迭代器和for循环优劣详解内容,对此有兴趣的朋友们可以学习参考下。
    2021-01-01
  • IntelliJ IDEA 2020最新激活码(亲测有效,可激活至 2089 年)

    IntelliJ IDEA 2020最新激活码(亲测有效,可激活至 2089 年

    这篇文章主要介绍了IntelliJ IDEA 2021最新激活码(亲测有效,可激活至 2089 年),非常不错,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • 解决Java项目中request流只能获取一次的问题

    解决Java项目中request流只能获取一次的问题

    Java项目开发中可能存在以下几种情况,你需要在拦截器中统一拦截请求和你项目里可能需要搞一个统一的异常处理器,这两种情况是比较常见的,本文将给大家介绍如何解决Java项目中request流只能获取一次的问题,需要的朋友可以参考下
    2024-02-02
  • Java中的RocketMQ消费幂等详解

    Java中的RocketMQ消费幂等详解

    这篇文章主要介绍了Java中的RocketMQ消费幂等详解,当出现消费者对某条消息重复消费的情况时,重复消费的结果与消费一次的结果是相同的,并且多次消费并未对业务系统业务产生任何负面影响,那么这个消费过程就是消息幂等,需要的朋友可以参考下
    2023-10-10
  • Java多线程编程之读写锁ReadWriteLock用法实例

    Java多线程编程之读写锁ReadWriteLock用法实例

    这篇文章主要介绍了Java多线程编程之读写锁ReadWriteLock用法实例,本文直接给出编码实例,需要的朋友可以参考下
    2015-05-05
  • SpringBoot如何正确配置并运行Kafka

    SpringBoot如何正确配置并运行Kafka

    这篇文章主要介绍了SpringBoot如何正确配置并运行Kafka问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Java从数据库中读取Blob对象图片并显示的方法

    Java从数据库中读取Blob对象图片并显示的方法

    这篇文章主要介绍了Java从数据库中读取Blob对象图片并显示的方法,实例分析了Java读取数据库中Blob对象图片的技巧与操作方法,需要的朋友可以参考下
    2015-02-02
  • 浅谈virtual、abstract方法和静态方法、静态变量理解

    浅谈virtual、abstract方法和静态方法、静态变量理解

    下面小编就为大家带来一篇浅谈virtual、abstract方法和静态方法、静态变量理解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • SpringBoot+Eureka实现微服务负载均衡的示例代码

    SpringBoot+Eureka实现微服务负载均衡的示例代码

    这篇文章主要介绍了SpringBoot+Eureka实现微服务负载均衡的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • Java字符串无意识的递归过程解析

    Java字符串无意识的递归过程解析

    这篇文章主要介绍了Java字符串无意识的递归过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09

最新评论