跳转至内容

动态类加载

25% developed
来自 Wikibooks,开放世界中的开放书籍

导航 反射 主题: v  d  e )

动态类加载允许加载程序启动前未知的 Java 代码。许多类依赖于其他类和资源,例如图标,这使得加载单个类变得不可行。因此,ClassLoaderjava.lang.ClassLoader)用于管理一组类的所有内部依赖项。Java 模型根据需要加载类,并且不需要在加载和运行任何一个类之前知道集合中所有类的名称。

简单的动态类加载

[编辑 | 编辑源代码]

动态加载 Class 的一种简单方法是通过 java.net.URLClassLoader 类。此类可用于加载通过 URL 访问的 Class 或一组类。这与 java 可执行文件中的 -classpath 参数非常相似。要创建 URLClassLoader,请使用工厂方法(因为使用构造函数需要安全权限)

Example 代码部分 10.4:类加载器。
URLClassLoader classLoader = URLClassLoader.newInstance(
   new URL[]{"http://example.com/javaClasses.jar"});

与其他动态类加载技术不同,即使没有安全权限,只要类来自与调用者相同的 Web 域,也可以使用此技术。获得 ClassLoader 实例后,可以通过 loadClass 方法加载类。例如,要加载类 com.example.MyClass,可以使用以下方法:

Example 代码部分 10.5:类加载。
Class<?> clazz = classLoader.load("com.example.MyClass");

Class 实例执行代码在动态调用章节中进行了说明。


Clipboard

待办事项
添加一些类似于变量中的练习

华夏公益教科书