ISafeVarargs Antarmuka

Definisi

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>

&#64;SafeVarargs // Not actually safe!
            static void m(List&lt;String&gt;... stringLists) {
              Object[] array = stringLists;
              List&lt;Integer&gt; 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 java.lang.System.identityHashCode() untuk instans yang dibungkus.

(Diperoleh dari IJavaPeerable)
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 Dispose(); jika tidak, tidak melakukan apa pun.

(Diperoleh dari IJavaPeerable)
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 JniIdentityHashCode.

(Diperoleh dari IJavaPeerable)
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 PeerReference.

(Diperoleh dari IJavaPeerable)
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 self.

JavaAs<TResult>(IJavaPeerable)

Cobalah untuk memaksa self untuk mengetik TResult, memeriksa bahwa paksaan valid di sisi Java.

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 self untuk mengetik TResult, memeriksa bahwa paksaan valid di sisi Java.

Berlaku untuk