反射用法

来源:互联网 发布:魔兽任务数据库 编辑:程序博客网 时间:2024/05/21 08:40

上面讲了类加载机制,会将类放到一个池子里面。这时候如果我们想获取某个类,然后调用某个类的方法的话,可以使用反射。

import java.lang.reflect.Method;public class TestClassLoader {public static void main(java.lang.String args[]) throws Exception{//类加载器System.out.println("启动类加载器--BOOTSTRAP ClassLoader 加载C:\\Program Files\\Java\\jre1.8.0_112\\lib\\rt.jar: "+String.class.getClassLoader());System.out.println("扩展类加载器--Extension ClassLoader 加载C:\\Program Files\\Java\\jre1.8.0_112\\lib\\ext下面的类 :"+com.sun.crypto.provider.DESKeyFactory.class.getClassLoader().getClass().getName());System.out.println("应用程序类加载器--Application ClassLoader 加载所有我们写的类"+ TestClassLoader.class.getClassLoader().getClass().getName());//类加载器的 组合拳ClassLoader classLoader = TestClassLoader.class.getClassLoader(); while(classLoader!=null){System.out.println(classLoader.getClass().getName());classLoader= classLoader.getParent();}//反射Class<?> forName = Class.forName("M");Object newInstance = forName.newInstance();Method m = M.class.getMethod("refl");m.invoke(newInstance);}}class M{public static void refl(){System.out.println("hahaha");}}


简单用法就像这样。




0 0
原创粉丝点击