一 反射中获取字节码文件的三种形式:(以一个Category为例)
1.类:
类.class---Class clazz=Category.class
2.对象:
对象.getClass()---Class clazz=cte.getClass()
3.Class静态方法:
Class.forName("全包名")---Class clazz=Class.forName("service.impl.CategoryServiceImpl")
输出结果:---class service.impl.CategoryServiceImpl
二 获取类加载器的方法
字节码文件对象.getClassLoader:
ClassLoader classLoader=clazz.getClassLoader
输出结果:sun.misc.Launcher$AppClassLoader@9cb0f4
三 获取文件的位置和路径
位置---URL url = classLoader.getResource("bean.xml");
输出结果:file:/D:/java/Web_finish/build/classes/bean.xml
路径---String path = url.getPath();
输出结果:/D:/java/Web_finish/build/classes/bean.xml
四 获取流对象
InputStream stream = classLoader.getResourceAsStream("bean.xml");
输出结果:java.io.BufferedInputStream@a50916