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), RuntimePermissionpublic 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), RuntimePermissionpublic boolean isAccessible()
accessible フラグの値を取得します。accessible フラグの値public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
AnnotatedElementgetAnnotation、インタフェース: AnnotatedElementannotationClass - 注釈型に対応する Class オブジェクトNullPointerException - 指定された注釈クラスが null の場合public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)
AnnotatedElementisAnnotationPresent、インタフェース: AnnotatedElementannotationClass - 注釈型に対応する Class オブジェクトNullPointerException - 指定された注釈クラスが null の場合public Annotation[] getAnnotations()
AnnotatedElementgetAnnotations、インタフェース: AnnotatedElementpublic Annotation[] getDeclaredAnnotations()
AnnotatedElementgetDeclaredAnnotations、インタフェース: AnnotatedElement バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.