ClassLoader提供了一个URLClassLoader实现类,该类是系统类加载器和扩展类加载器的父类。
URLClassLoader可以从本地二进制文件加载类,也可以从远程主机获取二进制文件加载类。
构造器
1 | URLClassLoader(URL[] urls):使用parent(父类)加载器创建一个ClassLoader对象,该对象将从urls所指定的系列路径查询并获取类。 |
接下来通过一个例子具体演示:
1 | //定义一个Test接口,该接口包含一个write方法 |
定义一个mytest类,并实现Test接口,把该文件打包成jar,名字为TestClassloader.jar,把该文件放入远程主机或本地
1 | public class mytest implements Test{ |
下面是测试类:
1 | import java.lang.reflect.Method; |
运行testurl,结果输出如下:
1 | starting.... |
动态加载类可以灵活的处理各种需要的情况,同时动态加载类常与反射共同使用,因为既然是动态,那么类的类型是未知的,那么如何能调用该类的方法呢?这就需要运用反射执行方法了。