JavaTM 2
Platform
Std. Ed. v1.4.0

java.lang.reflect
クラス AccessibleObject

java.lang.Object
  |
  +--java.lang.reflect.AccessibleObject
直系の既知のサブクラス:
Constructor, Field, Method

public class AccessibleObject
extends Object

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

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

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

コンストラクタの概要
protected AccessibleObject()
          コンストラクタで、Java 仮想マシンだけが使用します。
 
メソッドの概要
 boolean isAccessible()
          このオブジェクトの accessible フラグの値を取得します。
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 フラグの値

JavaTM 2
Platform
Std. Ed. v1.4.0

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

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.