JavaTM 2 Platform
Standard Ed. 5.0

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 言語アクセス制御チェックを抑制するかどうかのフラグ設定を行えます。アクセスチェックは、次の場合に public、デフォルト (package) アクセス、protected、および private メンバに対して実行されます。つまり、フィールドの設定または取得に Field が使用される場合、メソッドの呼び出しに Method が使用される場合、あるいはクラスの新しいインスタンスの生成および初期化に Constructor が使用される場合です。

リフレクトされたオブジェクトで accessible フラグを設定すると、十分な特権を持つ高度なアプリケーション (Java のオブジェクトの直列化やその他の持続性機構など) は、通常は禁止されている方法でオブジェクトを操作できます。

導入されたバージョン:
1.2
関連項目:
Field, Method, Constructor, ReflectPermission

コンストラクタの概要
protected AccessibleObject()
          コンストラクタで、Java 仮想マシンだけが使用します。
 
メソッドの概要
<T extends Annotation>
T
getAnnotation(Class<T> annotationClass)
          指定された型の注釈が存在する場合は、指定された型の要素の注釈を返します。
 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 値に設定します。
 
クラス 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 フラグを設定する簡易メソッドです。

セキュリティマネージャが存在する場合、まず、セキュリティマネージャの checkPermission メソッドがアクセス権 ReflectPermission("suppressAccessChecks") で呼び出されます。

flagtrue の場合、SecurityException がスローされますが、入力 array の要素のアクセス可能性は変わらないことがあります(たとえば、要素オブジェクトが Class クラスの Constructor オブジェクトである場合)。このような SecurityException のイベントの場合、オブジェクトへのアクセス可能性は、例外が生じた要素の直前までの配列要素については flag に設定されます。例外が生じた要素以降の要素へのアクセス可能性は変更されません。

パラメータ:
array - AccessibleObject の配列
flag - 各オブジェクトの accessible フラグの新しい値
例外:
SecurityException - 要求が拒否された場合
関連項目:
SecurityManager.checkPermission(java.security.Permission), RuntimePermission

setAccessible

public void setAccessible(boolean flag)
                   throws SecurityException
このオブジェクトの accessible フラグを、指定された boolean 値に設定します。値 true は、リフレクトされたオブジェクトの使用時に、Java 言語アクセスチェックが抑制されることを示します。値 false は、リフレクトされたオブジェクトが Java 言語アクセスチェックを実施することを示します。

セキュリティマネージャが存在する場合、まず、セキュリティマネージャの checkPermission メソッドがアクセス権 ReflectPermission("suppressAccessChecks") で呼び出されます。

flagtrue の場合、SecurityException がスローされますが、このオブジェクトのアクセス可能性は変わらないことがあります (たとえば、この要素オブジェクトが Class クラスの Constructor オブジェクトである場合)。

このオブジェクトが 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

isAnnotationPresent

public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)
インタフェース AnnotatedElement の記述:
指定された型の注釈がこの要素に存在する場合は true を返し、そうでない場合は false を返します。このメソッドは、主にマーカー注釈への簡易アクセスを目的に設計されています。

定義:
インタフェース AnnotatedElement 内の isAnnotationPresent
パラメータ:
annotationClass - 注釈型に対応する Class オブジェクト
戻り値:
指定された注釈型の注釈がこの要素に存在する場合は true、そうでない場合は false

getAnnotations

public Annotation[] getAnnotations()
インタフェース AnnotatedElement の記述:
この要素に存在するすべての注釈を返します (この要素に注釈がない場合は長さゼロの配列を返します)。このメソッドの呼び出し元は、返された配列を自由に変更できます。この変更は、他の呼び出し元に返された配列に影響を及ぼしません。

定義:
インタフェース AnnotatedElement 内の getAnnotations
戻り値:
この要素に存在するすべての注釈

getDeclaredAnnotations

public Annotation[] getDeclaredAnnotations()
インタフェース AnnotatedElement の記述:
この要素に直接存在するすべての注釈を返します。このインタフェースにある他のメソッドとは異なり、このメソッドは継承された注釈を無視します (この要素に注釈が直接存在しない場合は長さゼロの配列を返す)。このメソッドの呼び出し元は、返された配列を自由に変更できます。この変更は、他の呼び出し元に返された配列に影響を及ぼしません。

定義:
インタフェース AnnotatedElement 内の getDeclaredAnnotations
戻り値:
この要素に直接存在するすべての注釈

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。