ISafeVarargs Antarmuka
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.
Pernyataan programmer bahwa isi metode atau konstruktor yang dianotasikan tidak melakukan operasi yang berpotensi tidak aman pada parameter varargs-nya.
[Android.Runtime.Register("java/lang/SafeVarargs", "", "Java.Lang.ISafeVarargsInvoker")]
public interface ISafeVarargs : IDisposable, Java.Interop.IJavaPeerable, Java.Lang.Annotation.IAnnotation
[<Android.Runtime.Register("java/lang/SafeVarargs", "", "Java.Lang.ISafeVarargsInvoker")>]
type ISafeVarargs = interface
interface IAnnotation
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- Atribut
- Penerapan
Keterangan
Pernyataan programmer bahwa isi metode atau konstruktor yang dianotasikan tidak melakukan operasi yang berpotensi tidak aman pada parameter varargs-nya. Menerapkan anotasi ini ke metode atau konstruktor menekan peringatan yang tidak dicentang tentang jenis aritas variabel yang tidak dapat dipulihkan (vararg) dan menekan peringatan yang tidak dicentang tentang pembuatan array parameter di situs panggilan.
Selain pembatasan penggunaan yang diberlakukan oleh meta-anotasinya Target @Target , kompilator diperlukan untuk menerapkan pembatasan penggunaan tambahan pada jenis anotasi ini; ini adalah kesalahan waktu kompilasi jika metode atau deklarasi konstruktor dianotasikan dengan anotasi @SafeVarargs , dan baik: <ul><li> deklarasi adalah metode aritas tetap atau konstruktor
<li> deklarasi adalah metode aritas variabel yang bukan static atau .finalprivate
</ul>
Pengompilasi didorong untuk mengeluarkan peringatan ketika jenis anotasi ini diterapkan ke metode atau deklarasi konstruktor di mana:
<ul>
<li> Parameter aritas variabel memiliki jenis elemen yang dapat direifikasi, yang mencakup jenis primitif, Object, dan String. (Peringatan yang tidak dicentang jenis anotasi ini menekan sudah tidak terjadi untuk jenis elemen yang dapat dipulihkan.)
<li> Isi metode atau deklarasi konstruktor melakukan operasi yang berpotensi tidak aman, seperti penugasan ke elemen array parameter aritas variabel yang menghasilkan peringatan yang tidak dicentang. Beberapa operasi yang tidak aman tidak memicu peringatan yang tidak dicentang. Misalnya, alias di
<blockquote>
@SafeVarargs // Not actually safe!
static void m(List<String>... stringLists) {
Object[] array = stringLists;
List<Integer> tmpList = Arrays.asList(42);
array[0] = tmpList; // Semantically invalid, but compiles without warnings
String s = stringLists[0].get(0); // Oh no, ClassCastException at runtime!
}
</blockquote>
mengarah ke ClassCastException pada runtime.
Versi platform di masa mendatang dapat mengamanatkan kesalahan pengkompilasi untuk operasi yang tidak aman tersebut.
</ul>
Ditambahkan dalam 1.7.
Java dokumentasi untuk java.lang.SafeVarargs.
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.
Properti
| Nama | Deskripsi |
|---|---|
| Handle |
Mendapatkan nilai JNI dari objek Android yang mendasar. (Diperoleh dari IJavaObject) |
| JniIdentityHashCode |
Mengembalikan nilai |
| JniManagedPeerState |
Status serekan terkelola. (Diperoleh dari IJavaPeerable) |
| JniPeerMembers |
Akses anggota dan dukungan pemanggilan. (Diperoleh dari IJavaPeerable) |
| PeerReference |
Mengembalikan instans objek Java yang dibungkusJniObjectReference. (Diperoleh dari IJavaPeerable) |
Metode
| Nama | Deskripsi |
|---|---|
| AnnotationType() |
Mengembalikan antarmuka anotasi anotasi anotasi ini. (Diperoleh dari IAnnotation) |
| Disposed() |
Dipanggil ketika instans telah dibuang. (Diperoleh dari IJavaPeerable) |
| DisposeUnlessReferenced() |
Jika tidak ada referensi yang luar biasa untuk instans ini, maka panggilan |
| Equals(Object) |
Mengembalikan true jika objek yang ditentukan mewakili anotasi yang secara logis setara dengan yang satu ini. (Diperoleh dari IAnnotation) |
| Finalized() |
Dipanggil ketika instans telah diselesaikan. (Diperoleh dari IJavaPeerable) |
| GetHashCode() |
Mengembalikan kode hash anotasi ini. (Diperoleh dari IAnnotation) |
| SetJniIdentityHashCode(Int32) |
Atur nilai yang dikembalikan oleh |
| SetJniManagedPeerState(JniManagedPeerStates) |
Pernyataan programmer bahwa isi metode atau konstruktor yang dianotasikan tidak melakukan operasi yang berpotensi tidak aman pada parameter varargs-nya. (Diperoleh dari IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
Atur nilai yang dikembalikan oleh |
| ToString() |
Mengembalikan representasi string dari anotasi ini. (Diperoleh dari IAnnotation) |
| UnregisterFromRuntime() |
Batalkan pendaftaran instans ini sehingga runtime tidak akan mengembalikannya dari pemanggilan di masa mendatang Java.Interop.JniRuntime+JniValueManager.PeekValue . (Diperoleh dari IJavaPeerable) |
Metode Ekstensi
| Nama | Deskripsi |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Mendapatkan nama JNI dari jenis instans |
| JavaAs<TResult>(IJavaPeerable) |
Cobalah untuk memaksa |
| JavaCast<TResult>(IJavaObject) |
Melakukan konversi jenis yang diperiksa runtime Android. |
| JavaCast<TResult>(IJavaObject) |
Pernyataan programmer bahwa isi metode atau konstruktor yang dianotasikan tidak melakukan operasi yang berpotensi tidak aman pada parameter varargs-nya. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Cobalah untuk memaksa |