CDC 1.1.2

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 仮想マシン (JVM) だけが使用します。
 
メソッドの概要
 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 仮想マシン (JVM) だけが使用します。

メソッドの詳細

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 フラグの値

CDC 1.1.2

Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. Use of this specification is subject to license terms.