Java ClassLoader definePackage()方法与示例
ClassLoader类definePackage()方法
definePackage()方法在java.lang包中可用。
definePackage()方法允许类加载器为其类定义包,并且在类加载器中定义的包名称必须唯一。
definePackage()方法是一个非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。
definePackage()方法在定义包时可能会引发异常。
IllegalArgumentException:当此类加载器或其任何祖先的现有包中已经存在一个包时,可能引发此异常。
语法:
protected Package definePackage(
String pack_name ,
String s_title,
String s_version,
String s_vendor,
String i_title,
String i_vendor,
String i_version,
URL seal_status);参数:
字符串pack_name–表示软件包的名称。
字符串s_title-表示标题规范。
字符串s_version–表示版本规范。
字符串s_vendor–代表供应商规范。
字符串i_title-表示标题实现。
字符串i_version–表示版本实现。
字符串i_vendor–表示供应商实现。
URLseal_status–表示密封状态(即URL不为null时被密封)。
返回值:
该方法的返回类型为Package,它返回一个新创建的包。
示例
//Java程序演示示例
//ClassLoader的packagedefinePackage()方法的说明
public class DefinePackageOfClassLoader extends ClassLoader {
public static void main(String[] args) throws ClassNotFoundException {
//载入类
Class cl = Class.forName("java.lang.String");
//返回String类的包
Package pack = cl.getPackage();
//Java库中已经存在java.lang-
if (pack != null)
System.out.println(pack.toString() + " already exists!!!!");
else
System.out.println("Ready to create a package by using definePackage()");
}
}
class DefinePackage extends ClassLoader {
//如果包不存在,那么我们可以创建一个
//使用definePackage()方法打包
Package new_package = definePackage("includehelp.java", "Nhooo", "2.0.3", "Microsoft", null, null, null, null);
}输出结果
package java.lang already exists!!!!