public class AccessibleObject extends Object implements AnnotatedElement
リフレクトされたオブジェクトで accessible
フラグを設定すると、十分な特権を持つ高度なアプリケーション (Java のオブジェクトの直列化やその他の持続性メカニズムなど) は、通常は禁止されている方法でオブジェクトを操作できます。
デフォルトでは、リフレクトされたオブジェクトはアクセス可能ではありません。
Field
, Method
, Constructor
, ReflectPermission
修飾子 | コンストラクタと説明 |
---|---|
protected |
AccessibleObject()
コンストラクタで、Java 仮想マシン (JVM) だけが使用します。
|
修飾子と型 | メソッドと説明 |
---|---|
<T extends Annotation> |
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 フラグを、指定された boolean 値に設定します。 |
public static void setAccessible(AccessibleObject[] array, boolean flag) throws SecurityException
accessible
フラグを設定する簡易メソッドです。
まず、セキュリティーマネージャーが存在する場合は、その checkPermission
メソッドが ReflectPermission("suppressAccessChecks")
アクセス権で呼び出されます。
flag
が true
の場合、SecurityException
がスローされますが、入力 array
の要素のアクセス可能性は変わらないことがあります (たとえば、要素オブジェクトが Class
クラスの Constructor
オブジェクトである場合)。このような SecurityException のイベントの場合、オブジェクトへのアクセス可能性は、例外が生じた要素の直前までの配列要素については flag
に設定されます。例外が生じた要素以降の要素へのアクセシビリティーは変更されません。
array
- AccessibleObject の配列flag
- 各オブジェクトの accessible
フラグの新しい値SecurityException
- 要求が拒否された場合。SecurityManager.checkPermission(java.security.Permission)
, RuntimePermission
public void setAccessible(boolean flag) throws SecurityException
accessible
フラグを、指定された boolean 値に設定します。値 true
は、リフレクトされたオブジェクトの使用時に、Java 言語アクセスチェックが抑制されることを示します。値 false
は、リフレクトされたオブジェクトが Java 言語アクセスチェックを実施することを示します。
まず、セキュリティーマネージャーが存在する場合は、その checkPermission
メソッドが ReflectPermission("suppressAccessChecks")
アクセス権で呼び出されます。
flag
が true
の場合、SecurityException
がスローされますが、このオブジェクトのアクセス可能性は変わらないことがあります (たとえば、この要素オブジェクトが Class
クラスの Constructor
オブジェクトである場合)。
このオブジェクトが java.lang.Class
クラスの Constructor
オブジェクトであり、flag
が true である場合、SecurityException
がスローされます。
flag
- accessible
フラグの新しい値SecurityException
- 要求が拒否された場合。SecurityManager.checkPermission(java.security.Permission)
, RuntimePermission
public boolean isAccessible()
accessible
フラグの値を取得します。accessible
フラグの値public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
AnnotatedElement
getAnnotation
、インタフェース: AnnotatedElement
annotationClass
- 注釈型に対応する Class オブジェクトNullPointerException
- 指定された注釈クラスが null の場合public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)
AnnotatedElement
isAnnotationPresent
、インタフェース: AnnotatedElement
annotationClass
- 注釈型に対応する Class オブジェクトNullPointerException
- 指定された注釈クラスが null の場合public Annotation[] getAnnotations()
AnnotatedElement
getAnnotations
、インタフェース: AnnotatedElement
public Annotation[] getDeclaredAnnotations()
AnnotatedElement
getDeclaredAnnotations
、インタフェース: AnnotatedElement
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.