ISafeVarargs 介面
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
程式設計師斷言註解方法或建構子的主體不會對其 varargs 參數執行潛在不安全的操作。
[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
- 屬性
- 實作
備註
程式設計師斷言註解方法或建構子的主體不會對其 varargs 參數執行潛在不安全的操作。 將此註解套用到方法或建構子上,會抑制關於 不可可再約 變數元數(vararg)類型未檢查的警告,並抑制呼叫站點參數化陣列建立的未檢查警告。
除了元註解所施加 Target @Target 的使用限制外,編譯器還需對此註解類型實施額外的使用限制;若方法或建構子宣告被 @SafeVarargs 註解,且以下情況如下: <ul><li> 宣告為固定元數方法或建構子,則為編譯時錯誤
<LI> 宣告是一種可變元數方法,既非 也static非 ,也final非 private 。
</ul>
當此註解類型套用於方法或建構子宣告時,編譯器被鼓勵發出警告:
<UL>
<li> 變數元數參數有一個可約元素類型,包含原始類型、 Object和 String。 (此註解類型所抑制的未檢查警告,已不會在可可實體元素類型中發生。)
<li> 方法或建構子宣告的主體執行可能不安全的操作,例如對變數元數參數陣列中的元素進行指派,產生未檢查的警告。 有些不安全操作不會觸發未檢查的警告。 例如,在 中的鋸齒
<引用>
@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!
}
</區塊引用>
在執行時會導致A ClassCastException 。
未來版本的平台可能會強制編譯器錯誤處理此類不安全操作。
</ul>
在 1.7 版本中加入。
Java 文件 java.lang.SafeVarargs。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
屬性
| 名稱 | Description |
|---|---|
| Handle |
取得底層 Android 物件的 JNI 值。 (繼承來源 IJavaObject) |
| JniIdentityHashCode |
回傳包裹實例的 |
| JniManagedPeerState |
管理貴族的狀況。 (繼承來源 IJavaPeerable) |
| JniObjectReferenceControlBlock |
程式設計師斷言註解方法或建構子的主體不會對其 varargs 參數執行潛在不安全的操作。 (繼承來源 IJavaPeerable) |
| JniPeerMembers |
成員存取與召喚支援。 (繼承來源 IJavaPeerable) |
| PeerReference |
回傳JniObjectReference包裹後的 Java 物件實例。 (繼承來源 IJavaPeerable) |
方法
| 名稱 | Description |
|---|---|
| AnnotationType() |
回傳該註解的註解介面。 (繼承來源 IAnnotation) |
| Disposed() |
當實例被處理後才被召喚。 (繼承來源 IJavaPeerable) |
| DisposeUnlessReferenced() |
如果沒有未解決的參考資料,則 |
| Equals(Object) |
若指定物件代表與此標註邏輯等價,則返回真。 (繼承來源 IAnnotation) |
| Finalized() |
當實例完成後才會被通知。 (繼承來源 IJavaPeerable) |
| GetHashCode() |
回傳此註解的雜湊碼。 (繼承來源 IAnnotation) |
| SetJniIdentityHashCode(Int32) |
將回傳的值設為 |
| SetJniManagedPeerState(JniManagedPeerStates) |
程式設計師斷言註解方法或建構子的主體不會對其 varargs 參數執行潛在不安全的操作。 (繼承來源 IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
將回傳的值設為 |
| ToString() |
回傳此註解的字串表示。 (繼承來源 IAnnotation) |
| UnregisterFromRuntime() |
取消註冊此實例,讓執行時不會在未來 Java.Interop.JniRuntime+JniValueManager.PeekValue 的呼叫中回傳該實例。 (繼承來源 IJavaPeerable) |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
程式設計師斷言註解方法或建構子的主體不會對其 varargs 參數執行潛在不安全的操作。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |