ClassLoader.DefineClass Metode

Definisi

Overload

Nama Deskripsi
DefineClass(Byte[], Int32, Int32)
Kedaluwarsa.

Mengonversi array byte menjadi instans kelas Class.

DefineClass(String, ByteBuffer, ProtectionDomain)

Mengonversi menjadi java.nio.ByteBuffer ByteBuffer instans kelas Class, dengan yang diberikan ProtectionDomain.

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

Mengonversi array byte menjadi instans kelas Class.

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

Mengonversi array byte menjadi instans kelas Class, dengan ProtectionDomain.

DefineClass(Byte[], Int32, Int32)

Perhatian

deprecated

Mengonversi array byte menjadi instans kelas 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

Parameter

b
Byte[]

Byte yang membentuk data kelas. Byte dalam posisi off melalui off+len-1 harus memiliki format file kelas yang valid seperti yang didefinisikan oleh <kutipan>Spesifikasi/kutipan<> Komputer Virtual Java.

off
Int32

Offset awal di b data kelas

len
Int32

Panjang data kelas

Mengembalikan

Objek Class yang dibuat dari data kelas yang ditentukan

Atribut

Pengecualian

jika classRep tidak berisi kelas yang valid.

jika offset , length atau jika offset + length lebih besar dari panjang classRep.

Keterangan

Mengonversi array byte menjadi instans kelas Class. Class Sebelum dapat digunakan, itu harus diselesaikan. Metode ini tidak digunakan lagi demi versi yang mengambil nama biner sebagai argumen pertamanya, dan lebih aman.

Anggota ini tidak digunakan lagi. Digantikan oleh #defineClass(String, byte[], int, int) defineClass(String, byte[], int, int)

Java dokumentasi untuk java.lang.ClassLoader.defineClass(byte[], int, int).

Bagian dari halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Android Open Source Project dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Creative Commons 2.5 Lisensi Atribusi.

Berlaku untuk

DefineClass(String, ByteBuffer, ProtectionDomain)

Mengonversi menjadi java.nio.ByteBuffer ByteBuffer instans kelas Class, dengan yang diberikan 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

Parameter

name
String

Nama biner yang diharapkan. kelas, atau null jika tidak diketahui

b
ByteBuffer

Byte yang membentuk data kelas. Byte dari posisi b.position() melalui b.position() + b.limit() -1 harus memiliki format file kelas yang valid seperti yang didefinisikan oleh <kutipan>Spesifikasi/kutipan<> Komputer Virtual Java.

protectionDomain
ProtectionDomain

Kelas ProtectionDomain , atau null.

Mengembalikan

Objek Class yang dibuat dari data, dan ProtectionDomain.

Atribut

Pengecualian

jika b tidak berisi kelas yang valid.

jika className tidak sama dengan nama kelas yang terkandung dalam b.

Keterangan

Mengonversi menjadi java.nio.ByteBuffer ByteBuffer instans kelas Class, dengan yang diberikan ProtectionDomain. Jika yang diberikan ProtectionDomain adalah null, maka domain perlindungan default akan ditetapkan ke kelas seperti yang ditentukan dalam dokumentasi untuk #defineClass(String, byte[], int, int). Sebelum kelas dapat digunakan, kelas harus diselesaikan.

Aturan tentang kelas pertama yang ditentukan dalam paket yang menentukan kumpulan sertifikat untuk paket, pembatasan nama kelas, dan paket kelas yang ditentukan identik dengan yang ditentukan dalam dokumentasi untuk #defineClass(String, byte[], int, int, ProtectionDomain).

Pemanggilan metode ini darinama.defineClass(cl, formulirbBuffer,pd) menghasilkan hasil yang sama persis dengan pernyataan

...<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>

Ditambahkan dalam 1.5.

Java dokumentasi untuk java.lang.ClassLoader.defineClass(java.lang.String, java.nio.ByteBuffer, java.security.ProtectionDomain).

Bagian dari halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Android Open Source Project dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Creative Commons 2.5 Lisensi Atribusi.

Berlaku untuk

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

Mengonversi array byte menjadi instans kelas 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

Parameter

name
String

Nama biner kelas yang diharapkan, atau null jika tidak diketahui

b
Byte[]

Byte yang membentuk data kelas. Byte dalam posisi off melalui off+len-1 harus memiliki format file kelas yang valid seperti yang didefinisikan oleh <kutipan>Spesifikasi/kutipan<> Komputer Virtual Java.

off
Int32

Offset awal di b data kelas

len
Int32

Panjang data kelas

Mengembalikan

Objek Class yang dibuat dari data kelas yang ditentukan.

Atribut

Pengecualian

jika classRep tidak berisi kelas yang valid.

jika offset , length atau jika offset + length lebih besar dari panjang classRep.

Keterangan

Mengonversi array byte menjadi instans kelas Class. Class Sebelum dapat digunakan, itu harus diselesaikan.

Metode ini menetapkan default java.security.ProtectionDomain ProtectionDomain ke kelas yang baru ditentukan. ProtectionDomain secara efektif diberikan sekumpulan izin yang sama yang dikembalikan ketika java.security.Policy#getPermissions(java.security.CodeSource) Policy.getPolicy().getPermissions(new CodeSource(null, null)) dipanggil. Domain perlindungan default dibuat pada pemanggilan #defineClass(String, byte[], int, int) defineClasspertama , dan digunakan kembali pada pemanggilan berikutnya.

Untuk menetapkan khusus ProtectionDomain ke kelas , gunakan #defineClass(String, byte[], int, int, java.security.ProtectionDomain) defineClass metode yang mengambil ProtectionDomain sebagai salah satu argumennya.

Metode ini mendefinisikan paket dalam pemuat kelas ini yang sesuai dengan paket (jika paket seperti Class itu belum ditentukan dalam pemuat kelas ini). Nama paket yang ditentukan berasal dari nama biner kelas yang ditentukan oleh array bbyte . Properti lain dari paket yang ditentukan adalah sebagaimana ditentukan oleh Package.

Ditambahkan dalam 1.1.

Java dokumentasi untuk java.lang.ClassLoader.defineClass(java.lang.String, byte[], int, int).

Bagian dari halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Android Open Source Project dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Creative Commons 2.5 Lisensi Atribusi.

Berlaku untuk

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

Mengonversi array byte menjadi instans kelas Class, dengan 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

Parameter

name
String

Nama biner kelas yang diharapkan, atau null jika tidak diketahui

b
Byte[]

Byte yang membentuk data kelas. Byte dalam posisi off melalui off+len-1 harus memiliki format file kelas yang valid seperti yang didefinisikan oleh <kutipan>Spesifikasi/kutipan<> Komputer Virtual Java.

off
Int32

Offset awal di b data kelas

len
Int32

Panjang data kelas

protectionDomain
ProtectionDomain

Kelas ProtectionDomain

Mengembalikan

Objek Class yang dibuat dari data, dan ProtectionDomain.

Atribut

Pengecualian

jika classRep tidak berisi kelas yang valid.

jika offset , length atau jika offset + length lebih besar dari panjang classRep.

jika className tidak sama dengan nama kelas yang terkandung dalam classRep.

Keterangan

Mengonversi array byte menjadi instans kelas Class, dengan ProtectionDomain.

Jika yang diberikan ProtectionDomain adalah null, maka domain perlindungan default akan ditetapkan ke kelas seperti yang ditentukan dalam dokumentasi untuk #defineClass(String, byte[], int, int). Sebelum kelas dapat digunakan, kelas harus diselesaikan.

Kelas pertama yang ditentukan dalam paket menentukan kumpulan sertifikat yang tepat yang harus dimuat oleh semua kelas berikutnya dalam paket tersebut. Kumpulan sertifikat untuk kelas diperoleh dari java.security.CodeSource CodeSource dalam ProtectionDomain kelas. Setiap kelas yang ditambahkan ke paket tersebut harus berisi sekumpulan sertifikat yang sama atau akan SecurityException dilemparkan. Perhatikan bahwa jika name adalah null, pemeriksaan ini tidak dilakukan. Anda harus selalu meneruskan nama biner kelas yang Anda tentukan serta byte. Ini memastikan bahwa kelas yang Anda tentukan memang kelas yang Anda pikirkan.

Metode ini mendefinisikan paket dalam pemuat kelas ini yang sesuai dengan paket (jika paket seperti Class itu belum ditentukan dalam pemuat kelas ini). Nama paket yang ditentukan berasal dari nama biner kelas yang ditentukan oleh array bbyte . Properti lain dari paket yang ditentukan adalah sebagaimana ditentukan oleh Package.

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

Bagian dari halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Android Open Source Project dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Creative Commons 2.5 Lisensi Atribusi.

Berlaku untuk