JavaTM 2 Platform
Standard Ed. 6

java.lang.reflect
類別 AccessibleObject

java.lang.Object
  繼承者 java.lang.reflect.AccessibleObject
所有已實作的介面:
AnnotatedElement
直接已知子類別:
Constructor, Field, Method

public class AccessibleObject
extends Object
implements AnnotatedElement

AccessibleObject 類別是 Field、Method 和 Constructor 物件的基礎類別。它提供了將反射的物件標記為在使用時取消預設 Java 語言存取控制檢查的能力。對於公共成員、預設(打包)存取成員、受保護成員和私有成員,在分別使用 Field、Method 或 Constructor 物件來設置或獲取欄位、調用方法,或者創建和初始化類別的新實例的時候,會執行存取檢查。

在反射物件中設置 accessible 標誌允許具有足夠特權的複雜應用程序(比如 Java Object Serialization 或其他持久性機制)以某種通常禁止使用的方式來操作物件。

從以下版本開始:
1.2
另請參見:
Field, Method, Constructor, ReflectPermission

建構子摘要
protected AccessibleObject()
          建構子:僅供 Java 虛擬機器使用。
 
方法摘要
<T extends Annotation>
T
getAnnotation(Class<T> annotationClass)
          如果存在該元素的指定型別的註釋,則返回這些註釋,否則返回 null。
 Annotation[] getAnnotations()
          返回此元素上存在的所有註釋。
 Annotation[] getDeclaredAnnotations()
          返回直接存在於此元素上的所有註釋。
 boolean isAccessible()
          獲取此物件的 accessible 標誌的值。
 boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)
          如果指定型別的註釋存在於此元素上,則返回 true,否則返回 false。
static void setAccessible(AccessibleObject[] array, boolean flag)
          使用單一安全性檢查(為了提高效率)為一組物件設置 accessible 標誌的便捷方法。
 void setAccessible(boolean flag)
          將此物件的 accessible 標誌設置為指示的布林值。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

AccessibleObject

protected AccessibleObject()
建構子:僅供 Java 虛擬機器使用。

方法詳細資訊

setAccessible

public static void setAccessible(AccessibleObject[] array,
                                 boolean flag)
                          throws SecurityException
使用單一安全性檢查(為了提高效率)為一組物件設置 accessible 標誌的便捷方法。

首先,如果存在安全管理器,則在 ReflectPermission("suppressAccessChecks") 權限下調用 checkPermission 方法。

如果 flag 為 true,但是不能更改輸入 array 的任何元素的可存取性(例如,如果元素物件是 Class 類別的 Constructor 物件),則會引發 SecurityException。如果發生 SecurityException,對於少於(不包括)發生異常的元素的陣列元素,可以將物件的可存取性設置為 flag;對於超出(包括)引發異常的元素的那些元素,則不更改其可存取性。

參數:
array - AccessibleObjects 的陣列
flag - 每個物件中的 accessible 標誌的新值
拋出:
SecurityException - 如果請求被拒絕。
另請參見:
SecurityManager.checkPermission(java.security.Permission), RuntimePermission

setAccessible

public void setAccessible(boolean flag)
                   throws SecurityException
將此物件的 accessible 標誌設置為指示的布林值。值為 true 則指示反射的物件在使用時應該取消 Java 語言存取檢查。值為 false 則指示反射的物件應該實施 Java 語言存取檢查。

首先,如果存在安全管理器,則在 ReflectPermission("suppressAccessChecks") 權限下調用 checkPermission 方法。

如果 flag 為 true,並且不能更改此物件的可存取性(例如,如果此元素物件是 Class 類別的 Constructor 物件),則會引發 SecurityException。

如果此物件是 java.lang.Class 類別的 Constructor 物件,並且 flag 為 true,則會引發 SecurityException。

參數:
flag - accessible 標誌的新值
拋出:
SecurityException - 如果請求被拒絕。
另請參見:
SecurityManager.checkPermission(java.security.Permission), RuntimePermission

isAccessible

public boolean isAccessible()
獲取此物件的 accessible 標誌的值。

返回:
此物件的 accessible 標誌的值。

getAnnotation

public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
從介面 AnnotatedElement 複製的描述
如果存在該元素的指定型別的註釋,則返回這些註釋,否則返回 null。

指定者:
介面 AnnotatedElement 中的 getAnnotation
參數:
annotationClass - 對應於註釋型別的 Class 物件
返回:
如果該元素的指定註釋型別的註釋存在於此物件上,則返回這些註釋,否則返回 null
拋出:
NullPointerException - 如果給定的註釋類別為 null
從以下版本開始:
1.5

isAnnotationPresent

public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)
從介面 AnnotatedElement 複製的描述
如果指定型別的註釋存在於此元素上,則返回 true,否則返回 false。此方法主要是為了便於存取標記註釋而設計的。

指定者:
介面 AnnotatedElement 中的 isAnnotationPresent
參數:
annotationClass - 對應於註釋型別的 Class 物件
返回:
如果指定註釋型別的註釋存在於此物件上,則返回 true,否則返回 false
拋出:
NullPointerException - 如果給定的註釋類別為 null
從以下版本開始:
1.5

getAnnotations

public Annotation[] getAnnotations()
從介面 AnnotatedElement 複製的描述
返回此元素上存在的所有註釋。(如果此元素沒有註釋,則返回長度為零的陣列。)該方法的調用者可以隨意修改返回的陣列;這不會對其他調用者返回的陣列產生任何影響。

指定者:
介面 AnnotatedElement 中的 getAnnotations
返回:
此元素上存在的所有註釋
從以下版本開始:
1.5

getDeclaredAnnotations

public Annotation[] getDeclaredAnnotations()
從介面 AnnotatedElement 複製的描述
返回直接存在於此元素上的所有註釋。與此介面中的其他方法不同,該方法將忽略繼承的註釋。(如果沒有註釋直接存在於此元素上,則返回長度為零的一個陣列。)該方法的調用者可以隨意修改返回的陣列;這不會對其他調用者返回的陣列產生任何影響。

指定者:
介面 AnnotatedElement 中的 getDeclaredAnnotations
返回:
直接存在於此元素上的所有註釋
從以下版本開始:
1.5

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。