Langage

ClassLoader.DefineClass Méthode

Définition

Surcharges

Nom Description
DefineClass(Byte[], Int32, Int32)
Obsolète.

Convertit un tableau d’octets en une instance de classe Class.

DefineClass(String, ByteBuffer, ProtectionDomain)

Convertit une java.nio.ByteBuffer ByteBuffer instance de classe en une instance de classe Class, avec la valeur donnée ProtectionDomain.

DefineClass(String, Byte[], Int32, Int32)

Convertit un tableau d’octets en une instance de classe Class.

DefineClass(String, Byte[], Int32, Int32, ProtectionDomain)

Convertit un tableau d’octets en une instance de classe Class, avec un nombre donné ProtectionDomain.

DefineClass(Byte[], Int32, Int32)

Attention

deprecated

Convertit un tableau d’octets en une instance de classe Class.

[Android.Runtime.Register("defineClass", "([BII)Ljava/lang/Class;", "")]
[System.Obsolete("deprecated")]
protected Java.Lang.Class? DefineClass(byte[]? b, int off, int len);
[<Android.Runtime.Register("defineClass", "([BII)Ljava/lang/Class;", "")>]
[<System.Obsolete("deprecated")>]
member this.DefineClass : byte[] * int * int -> Java.Lang.Class

Paramètres

b
Byte[]

Octets qui composent les données de classe. Les octets en positions off doivent off+len-1 avoir le format d’un fichier de classe valide tel que défini par <la citation>La spécification</>cite de la machine virtuelle Java.

off
Int32

Décalage de début dans b les données de classe

len
Int32

Longueur des données de classe

Retours

Objet Class créé à partir des données de classe spécifiées

Attributs

Exceptions

s’il classRep ne contient pas de classe valide.

si offset , length ou s’il offset + length est supérieur à la longueur de classRep.

Remarques

Convertit un tableau d’octets en une instance de classe Class. Avant de Class pouvoir l’utiliser, il doit être résolu. Cette méthode est déconseillée en faveur de la version qui prend un nom binaire comme premier argument, et est plus sécurisée.

Ce membre est déconseillé. Remplacé par #defineClass(String, byte[], int, int) defineClass(String, byte[], int, int)

Java documentation pour java.lang.ClassLoader.defineClass(byte[], int, int).

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

S’applique à

DefineClass(String, ByteBuffer, ProtectionDomain)

Convertit une java.nio.ByteBuffer ByteBuffer instance de classe en une instance de classe Class, avec la valeur donnée ProtectionDomain.

[Android.Runtime.Register("defineClass", "(Ljava/lang/String;Ljava/nio/ByteBuffer;Ljava/security/ProtectionDomain;)Ljava/lang/Class;", "")]
protected Java.Lang.Class? DefineClass(string? name, Java.Nio.ByteBuffer? b, Java.Security.ProtectionDomain? protectionDomain);
[<Android.Runtime.Register("defineClass", "(Ljava/lang/String;Ljava/nio/ByteBuffer;Ljava/security/ProtectionDomain;)Ljava/lang/Class;", "")>]
member this.DefineClass : string * Java.Nio.ByteBuffer * Java.Security.ProtectionDomain -> Java.Lang.Class

Paramètres

name
String

Nom binaire attendu. de la classe, ou null s’il n’est pas connu

b
ByteBuffer

Octets qui composent les données de classe. Les octets des positions b.position()b.position() + b.limit() -1 doivent avoir le format d’un fichier de classe valide tel que défini par <la citation>La spécification</cite> de la machine virtuelle Java.

protectionDomain
ProtectionDomain

La ProtectionDomain classe, ou null.

Retours

Objet Class créé à partir des données et ProtectionDomain.

Attributs

Exceptions

s’il b ne contient pas de classe valide.

s’il className n’est pas égal au nom de la classe contenue dans b.

Remarques

Convertit une java.nio.ByteBuffer ByteBuffer instance de classe en une instance de classe Class, avec la valeur donnée ProtectionDomain. Si l’élément donné ProtectionDomain est null, un domaine de protection par défaut est affecté à la classe comme spécifié dans la documentation pour #defineClass(String, byte[], int, int). Avant que la classe puisse être utilisée, elle doit être résolue.

Les règles relatives à la première classe définie dans un package déterminant l’ensemble de certificats pour le package, les restrictions sur les noms de classes et le package défini de la classe sont identiques à celles spécifiées dans la documentation pour #defineClass(String, byte[], int, int, ProtectionDomain).

Un appel de cette méthode de la forme cl.defineClass(name,bBuffer,) génère exactement le même résultat que les instructions

...<br> byte[] temp = new byte[bBuffer.{@link java.nio.ByteBuffer#remaining remaining}()];<br> bBuffer.{@link java.nio.ByteBuffer#get(byte[]) get}(temp);<br> return {@link #defineClass(String, byte[], int, int, ProtectionDomain) cl.defineClass}(name, temp, 0, temp.length, pd);<br>

Ajouté à la version 1.5.

Java documentation pour java.lang.ClassLoader.defineClass(java.lang.String, java.nio.ByteBuffer, java.security.ProtectionDomain).

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

S’applique à

DefineClass(String, Byte[], Int32, Int32)

Convertit un tableau d’octets en une instance de classe Class.

[Android.Runtime.Register("defineClass", "(Ljava/lang/String;[BII)Ljava/lang/Class;", "")]
protected Java.Lang.Class? DefineClass(string? name, byte[]? b, int off, int len);
[<Android.Runtime.Register("defineClass", "(Ljava/lang/String;[BII)Ljava/lang/Class;", "")>]
member this.DefineClass : string * byte[] * int * int -> Java.Lang.Class

Paramètres

name
String

Nom binaire attendu de la classe, ou null s’il n’est pas connu

b
Byte[]

Octets qui composent les données de classe. Les octets en positions off doivent off+len-1 avoir le format d’un fichier de classe valide tel que défini par <la citation>La spécification</>cite de la machine virtuelle Java.

off
Int32

Décalage de début dans b les données de classe

len
Int32

Longueur des données de classe

Retours

Objet Class créé à partir des données de classe spécifiées.

Attributs

Exceptions

s’il classRep ne contient pas de classe valide.

si offset , length ou s’il offset + length est supérieur à la longueur de classRep.

Remarques

Convertit un tableau d’octets en une instance de classe Class. Avant de Class pouvoir l’utiliser, il doit être résolu.

Cette méthode affecte une valeur par défaut java.security.ProtectionDomain ProtectionDomain à la classe nouvellement définie. Le ProtectionDomain jeu d’autorisations est effectivement accordé au même jeu d’autorisations retourné lorsqu’il java.security.Policy#getPermissions(java.security.CodeSource) Policy.getPolicy().getPermissions(new CodeSource(null, null)) est appelé. Le domaine de protection par défaut est créé lors de la première invocation et #defineClass(String, byte[], int, int) defineClassré-utilisé lors des appels suivants.

Pour affecter une valeur spécifique ProtectionDomain à la classe, utilisez la #defineClass(String, byte[], int, int, java.security.ProtectionDomain) defineClass méthode qui prend l’un ProtectionDomain de ses arguments.

Cette méthode définit un package dans ce chargeur de classe correspondant au package du Class (si ce package n’a pas déjà été défini dans ce chargeur de classes). Le nom du package défini est dérivé du nom binaire de la classe spécifiée par le tableau bd’octets. Les autres propriétés du package défini sont spécifiées par Package.

Ajouté dans la version 1.1.

Java documentation pour java.lang.ClassLoader.defineClass(java.lang.String, byte[], int, int).

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

S’applique à

DefineClass(String, Byte[], Int32, Int32, ProtectionDomain)

Convertit un tableau d’octets en une instance de classe Class, avec un nombre donné ProtectionDomain.

[Android.Runtime.Register("defineClass", "(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class;", "")]
protected Java.Lang.Class? DefineClass(string? name, byte[]? b, int off, int len, Java.Security.ProtectionDomain? protectionDomain);
[<Android.Runtime.Register("defineClass", "(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class;", "")>]
member this.DefineClass : string * byte[] * int * int * Java.Security.ProtectionDomain -> Java.Lang.Class

Paramètres

name
String

Nom binaire attendu de la classe, ou null s’il n’est pas connu

b
Byte[]

Octets qui composent les données de classe. Les octets en positions off doivent off+len-1 avoir le format d’un fichier de classe valide tel que défini par <la citation>La spécification</>cite de la machine virtuelle Java.

off
Int32

Décalage de début dans b les données de classe

len
Int32

Longueur des données de classe

protectionDomain
ProtectionDomain

La ProtectionDomain classe

Retours

Objet Class créé à partir des données et ProtectionDomain.

Attributs

Exceptions

s’il classRep ne contient pas de classe valide.

si offset , length ou s’il offset + length est supérieur à la longueur de classRep.

s’il className n’est pas égal au nom de la classe contenue dans classRep.

Remarques

Convertit un tableau d’octets en une instance de classe Class, avec un nombre donné ProtectionDomain.

Si l’élément donné ProtectionDomain est null, un domaine de protection par défaut est affecté à la classe comme spécifié dans la documentation pour #defineClass(String, byte[], int, int). Avant que la classe puisse être utilisée, elle doit être résolue.

La première classe définie dans un package détermine l’ensemble exact de certificats que toutes les classes suivantes définies dans ce package doivent contenir. L’ensemble de certificats d’une classe est obtenu à partir de l’intérieur java.security.CodeSource CodeSourceProtectionDomain de la classe. Toutes les classes ajoutées à ce package doivent contenir le même ensemble de certificats ou une SecurityException levée. Notez que si name c’est nullle cas, cette vérification n’est pas effectuée. Vous devez toujours passer le nom binaire de la classe que vous définissez ainsi que les octets. Cela garantit que la classe que vous définissez est en effet la classe que vous pensez qu’elle est.

Cette méthode définit un package dans ce chargeur de classe correspondant au package du Class (si ce package n’a pas déjà été défini dans ce chargeur de classes). Le nom du package défini est dérivé du nom binaire de la classe spécifiée par le tableau bd’octets. Les autres propriétés du package défini sont spécifiées par Package.

Java documentation pour java.lang.ClassLoader.defineClass(java.lang.String, byte[], int, int, java.security.ProtectionDomain).

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

S’applique à