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

作者:lqh 时间:2023-11-29 15:17:57 

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);
 }
}

来源:http://blog.csdn.net/qq_35246620/article/details/53579013

标签:java,字节码
0
投稿

猜你喜欢

  • Android 拦截返回键事件的实例详解

    2023-02-19 07:09:09
  • 一文快速掌握Spring Cloud Stream

    2023-09-01 23:09:38
  • java字符串的重要使用方法以及实例

    2023-11-13 23:11:51
  • Android app启动图适配方法实例

    2023-07-31 16:23:34
  • 解析Java程序中对象内存的分配和控制的基本方法

    2023-01-07 21:46:10
  • Spring Data Jpa 复杂查询方式总结(多表关联及自定义分页)

    2023-11-21 10:01:27
  • Java实现数据库连接池的方法

    2023-11-28 08:57:30
  • java生成XML的方法

    2023-08-12 11:45:46
  • Java通过CMD方式读取注册表任意键值对代码实践

    2021-10-10 19:56:40
  • C++实现的链表类实例

    2023-07-04 08:36:36
  • C#如何操作Excel数据透视表

    2021-09-01 20:18:42
  • Java中的functor实现

    2023-11-26 08:30:50
  • SpringBoot关于自定义注解实现接口幂等性方式

    2023-09-27 14:03:42
  • javaWeb使用servlet搭建服务器入门

    2023-11-21 04:47:45
  • 关于mybatis使用${}时sql注入的问题

    2023-04-18 03:29:40
  • Android自定义view仿淘宝快递物流信息时间轴

    2022-02-20 18:51:16
  • springboot如何开启一个监听线程执行任务

    2022-01-09 08:44:48
  • spring入门教程之bean的继承与自动装配详解

    2023-11-10 14:46:23
  • Java并发编程之同步容器与并发容器详解

    2023-10-17 04:06:23
  • ClassLoader类加载源码解析

    2023-11-25 18:17:09
  • asp之家 软件编程 m.aspxhome.com