获得类的字节码对象的三种方式
Posted jiazhiyuan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获得类的字节码对象的三种方式相关的知识,希望对你有一定的参考价值。
java源码(xxx.java)通过编译后形成字节码文件,字节码文件通过类加载器获得字节码对象,
通过字节码对象可以操作源码中的属性和方法。
方式一,使用类的class属性:
Class<java.util.Date> clazz1 = java.util.Date.class;
方式二,通过Class类中的静态方法forName(String className),传入类的全限定名(必须添加完整包名)
Class<?> clazz2 = Class.forName(“java.util.Date”);
方式三,通过对象的getClass方法来实现,其中,getClass()是Object类中的方法,所有的对象都可以调用该方法
java.util.Date str = new java.util.Date();
Class<?> clazz3 = str.getClass();
通过类加载器获得src下的任何资源的路径(类加载器的使用)
public class Demo { public static void main(String[] args) { //获得Demo的字节码对象 Class clazz=Demo.class; //获得Demo字节码文件的类加载器 ClassLoader classLoader = clazz.getClassLoader(); //获得classes(src)下的任何资源,注意!!src下 String path = classLoader.getResource("jdbc.properties").getPath(); System.out.println(path); } }
以上是关于获得类的字节码对象的三种方式的主要内容,如果未能解决你的问题,请参考以下文章