使用可选的 protectiondomain 将 bytebuffer
转换为 class 类的实例。如果该域为 null,则将默认域分配给 defineclass(string, byte[], int, int)
的文档中指定的类。这个类必须对象
iis7站长之家后才能使用。
有关包中定义的第一个类(它确定了包的证书集合)的规则,以及对类名称的限制,都与 defineclass(string, byte[], int, int, protectiondomain)
的文档中指定的相同。
调用形式为 cl.defineclass(name, bbuffer, pd) 的此方法所产生的结果与以下语句产生的结果相同
...
byte[] temp = new byte[bbuffer.remaining
()];
bbuffer.get
(temp);
return
cl.defineclass(name, temp, 0, temp.length, pd);
- 参数:
name
- 所需要的类的二进制名称,如果不知道此名称,则该参数为 nullb
- 组成类数据的字节。从 b.position 到 b.position() + b.limit() -1 的字节应该具有由《java virtual machine specification》定义的有效类文件的格式。protectiondomain
- 类的 protectiondomain,或为 null。
- 返回:
- 从数据中创建的 class 对象和可选的 protectiondomain。
- 抛出:
classformaterror
- 如果数据不包含有效的类。
noclassdeffounderror
- 如果 name 不等于 b 指定的类的二进制名称。
securityexception
- 如果试图将此类添加到某个包中,而这个包中包含由不同证书集合(而不是该类)签名的类,或者 name 以 "java." 开头。- 从以下版本开始:
- 1.5
- 另请参见:
defineclass(string, byte[], int, int, protectiondomain)