ClassLoader.DefineClass Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Overload
| Nama | Deskripsi |
|---|---|
| DefineClass(Byte[], Int32, Int32) |
Kedaluwarsa.
Mengonversi array byte menjadi instans kelas |
| DefineClass(String, ByteBuffer, ProtectionDomain) |
Mengonversi menjadi |
| DefineClass(String, Byte[], Int32, Int32) |
Mengonversi array byte menjadi instans kelas |
| DefineClass(String, Byte[], Int32, Int32, ProtectionDomain) |
Mengonversi array byte menjadi instans kelas |
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
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.
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.
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.