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

相关文章

  • springboot异步处理@NotBlank或@NotNull注释校验不生效问题

    springboot异步处理@NotBlank或@NotNull注释校验不生效问题

    这篇文章主要介绍了springboot异步处理@NotBlank或@NotNull注释校验不生效问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • java使用poi自定义excel标题头并导出方式

    java使用poi自定义excel标题头并导出方式

    这篇文章主要介绍了java使用poi自定义excel标题头并导出方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • Java中反射的一个简单使用

    Java中反射的一个简单使用

    一直感觉Java的反射机制很强大,JAVA反射技术在平时我们的开发中虽然很少会用到,但在我们所使用的框架源码中是经常会用到的。这篇文中就给大家介绍了关于Java中反射的一个简单使用,有需要的朋友们下面来一起看看吧。
    2016-11-11
  • SpringBoot获取配置文件内容的几种方式总结

    SpringBoot获取配置文件内容的几种方式总结

    大家都知道SpringBoot获取配置文件的方法有很多,下面这篇文章主要给大家介绍了关于SpringBoot获取配置文件内容的几种方式,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • Spring Aware接口示例代码详解

    Spring Aware接口示例代码详解

    Spring的依赖注入的最大亮点是所有的Bean对Spring容器的存在是没有意识的,我们可以将Spring容器换成其他的容器,Spring容器中的Bean的耦合度因此也是极低的,本文给大家介绍Spring Aware接口示例代码详解,感兴趣的朋友一起看看吧
    2022-02-02
  • Spring Cloud Alibaba 本地调试介绍及方案设计

    Spring Cloud Alibaba 本地调试介绍及方案设计

    为了解决 本地调试 的问题,本文实现了一种简单实用的策略,可以通过 Nacos 动态配置服务路由,还可以基于用户,部门,组织等级别配置服务路由,实现 本地调试 的同时,实际上也实现 灰度发布,感兴趣的朋友跟随小编一起看看吧
    2021-07-07
  • Java11中基于嵌套关系的访问控制优化详解

    Java11中基于嵌套关系的访问控制优化详解

    Java(和其他语言)通过内部类支持嵌套类,要使其正常工作,需要编译器执行一些技巧,下面这篇文章主要给大家介绍了关于Java11中基于嵌套关系的访问控制优化的相关资料,需要的朋友可以参考下
    2022-01-01
  • 简单介绍区分applet和application的方法

    简单介绍区分applet和application的方法

    applet和application都是Java语言编写出来的应用程序,本文简单介绍了二者的不同之处,需要的朋友可以参考下
    2017-09-09
  • 关于MyBatis中SqlSessionFactory和SqlSession简解

    关于MyBatis中SqlSessionFactory和SqlSession简解

    这篇文章主要介绍了MyBatis中SqlSessionFactory和SqlSession简解,具有很好的参考价值,希望大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java实现对象复制的方法实例

    Java实现对象复制的方法实例

    这篇文章主要介绍了Java实现对象复制的方法实例,深复制:复制出来的对象中的变量(包括基本类型和字符串)和原来的对象的值都相同,引用对象也会指向复制出来的对象,需要的朋友可以参考下
    2023-08-08

最新评论