JavaTM 2 Platform
Std. Ed. v1.3

java.lang.reflect
クラス Field

java.lang.Object
  |
  +--java.lang.reflect.AccessibleObject
        |
        +--java.lang.reflect.Field
すべての実装インタフェース:
Member

public final class Field
extends AccessibleObject
implements Member

Field は、クラスまたはインタフェースについての情報、それらへのアクセス、その単一フィールドを提供します。リフレクトされたフィールドが、クラス (static) フィールドまたはインスタンスフィールドであることもあります。

Field は、アクセス操作の取得または設定中に拡大変換が発生することを許可しますが、縮小変換が発生すると IllegalArgumentException をスローします。

関連項目:
Member, Class, Class.getFields(), Class.getField(String), Class.getDeclaredFields(), Class.getDeclaredField(String)

インタフェース java.lang.reflect.Member から継承したフィールド
DECLARED, PUBLIC
 
メソッドの概要
 boolean equals(Object obj)
          Field を指定されたオブジェクトと比較します。
 Object get(Object obj)
          指定されたオブジェクトについて、この Field によって表されるフィールドの値を返します。
 boolean getBoolean(Object obj)
          指定されたオブジェクトについて、フィールドの値を boolean として取得します。
 byte getByte(Object obj)
          指定されたオブジェクトについて、フィールドの値を byte として取得します。
 char getChar(Object obj)
          指定されたオブジェクトについて、フィールドの値を char として取得します。
 Class getDeclaringClass()
          Field オブジェクトによって表されるフィールドを宣言するクラスまたはインタフェースを表す Class オブジェクトを返します。
 double getDouble(Object obj)
          指定されたオブジェクトについて、フィールドの値を double として取得します。
 float getFloat(Object obj)
          指定されたオブジェクトについて、フィールドの値を float として取得します。
 int getInt(Object obj)
          指定されたオブジェクトについて、フィールドの値を int として取得します。
 long getLong(Object obj)
          指定されたオブジェクトについて、フィールドの値を long として取得します。
 int getModifiers()
          Field オブジェクトによって表されるフィールドの Java 言語修飾子を整数として返します。
 String getName()
          Field オブジェクトによって表されるフィールドの名前を返します。
 short getShort(Object obj)
          指定されたオブジェクトについて、フィールドの値を short として取得します。
 Class getType()
          Field オブジェクトで表されるフィールドの宣言タイプを識別する Class オブジェクトを返します。
 int hashCode()
          Field のハッシュコードを返します。
 void set(Object obj, Object value)
          この Field オブジェクトによって表される指定されたオブジェクト引数のフィールドを、指定された新しい値に設定します。
 void setBoolean(Object obj, boolean z)
          指定されたオブジェクトについて、フィールドの値を boolean として設定します。
 void setByte(Object obj, byte b)
          指定されたオブジェクトについて、フィールドの値を byte として設定します。
 void setChar(Object obj, char c)
          指定されたオブジェクトについて、フィールドの値を char として設定します。
 void setDouble(Object obj, double d)
          指定されたオブジェクトについて、フィールドの値を double として設定します。
 void setFloat(Object obj, float f)
          指定されたオブジェクトについて、フィールドの値を float として設定します。
 void setInt(Object obj, int i)
          指定されたオブジェクトについて、フィールドの値を int として設定します。
 void setLong(Object obj, long l)
          指定されたオブジェクトについて、フィールドの値を long として設定します。
 void setShort(Object obj, short s)
          指定されたオブジェクトについて、フィールドの値を short として設定します。
 String toString()
          Field を記述する文字列を返します。
 
クラス java.lang.reflect.AccessibleObject から継承したメソッド
isAccessible, setAccessible, setAccessible
 
クラス java.lang.Object から継承したメソッド
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

メソッドの詳細

getDeclaringClass

public Class getDeclaringClass()
Field オブジェクトによって表されるフィールドを宣言するクラスまたはインタフェースを表す Class オブジェクトを返します。
定義:
インタフェース Member 内の getDeclaringClass

getName

public String getName()
Field オブジェクトによって表されるフィールドの名前を返します。
定義:
インタフェース Member 内の getName

getModifiers

public int getModifiers()
Field オブジェクトによって表されるフィールドの Java 言語修飾子を整数として返します。Modifier クラスは、修飾子を復号化する場合に使用する必要があります。
定義:
インタフェース Member 内の getModifiers
関連項目:
Modifier

getType

public Class getType()
Field オブジェクトで表されるフィールドの宣言タイプを識別する Class オブジェクトを返します。

equals

public boolean equals(Object obj)
Field を指定されたオブジェクトと比較します。オブジェクトが等しい場合は、true を返します。2 つの Field オブジェクトは、同じクラスで宣言され、同じ名前を持つ場合に等しいと見なされます。
オーバーライド:
クラス Object 内の equals
クラス java.lang.Object からコピーされたタグ:
パラメータ:
obj - 比較対象の参照オブジェクト
戻り値:
obj 引数に指定されたオブジェクトとこのオブジェクトが等しい場合は true、そうでない場合は false
関連項目:
Boolean.hashCode(), Hashtable

hashCode

public int hashCode()
Field のハッシュコードを返します。これは、基本となるフィールドの宣言クラス名とその名前のハッシュコードの排他的論理和として計算されます。
オーバーライド:
クラス Object 内の hashCode
クラス java.lang.Object からコピーされたタグ:
戻り値:
このオブジェクトのハッシュコード値
関連項目:
Object.equals(java.lang.Object), Hashtable

toString

public String toString()
Field を記述する文字列を返します。この文字列の書式は、存在する場合はフィールドのアクセス修飾子、フィールド型、スペース、フィールドを宣言するクラスの完全指定された名前、ピリオド、フィールド名が順番に続きます。次に例を示します。
    public static final int java.lang.Thread.MIN_PRIORITY
    private int java.io.FileDescriptor.fd
 

修飾子は、Java 言語仕様で規定された標準的な順序で格納されます。つまり、最初に publicprotected、または private、続いてそれ以外の修飾子が staticfinaltransientvolatile の順序で置かれます。

オーバーライド:
クラス Object 内の toString
クラス java.lang.Object からコピーされたタグ:
戻り値:
このオブジェクトの文字列表現

get

public Object get(Object obj)
           throws IllegalArgumentException,
                  IllegalAccessException
指定されたオブジェクトについて、この Field によって表されるフィールドの値を返します。オブジェクトにプリミティブ型が指定されている場合、値はオブジェクト内で自動的にラップされます。

基本となるフィールドの値は、次に示すように取得されます。

基本となるフィールドが static フィールドである場合、obj 引数は無視されます。オブジェクト引数が null である場合があります。

static フィールドではない場合、基本となるフィールドはインスタンスフィールドです。指定された obj 引数が null の場合、メソッドは NullPointerException をスローします。指定されたオブジェクトが基本となるフィールドを宣言するクラスまたはインタフェースのインスタンスではない場合、メソッドは IllegalArgumentException をスローします。

この Field オブジェクトが Java 言語アクセス制御を実施し、基本となるフィールドにアクセスできない場合、メソッドは IllegalAccessException をスローします。基本となるフィールドが static の場合、そのフィールドを宣言したクラスがまだ初期化されていないときは、このクラスが初期化されます。

それ以外の場合、値は基本となるインスタンスまたは static フィールドから取得されます。フィールドにプリミティブ型が指定されている場合、値は返される前にオブジェクト内でラップされます。指定されていない場合、値はそのまま返されます。

フィールドが obj の型に隠されている場合、フィールドの値は前述の規則に従って取得されます。

例外:
IllegalAccessException - 基本となるコンストラクタにアクセスできない場合
IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド (またはそのサブクラスか実装側) を宣言するクラスまたはインタフェースのインスタンスではない場合
NullPointerException - 指定されたオブジェクトが null で、フィールドがインスタンスフィールドの場合
ExceptionInInitializerError - このメソッドによる初期化が失敗した場合

getBoolean

public boolean getBoolean(Object obj)
                   throws IllegalArgumentException,
                          IllegalAccessException
指定されたオブジェクトについて、フィールドの値を boolean として取得します。このメソッドの動作は ((Boolean)get(obj)).booleanValue() と同じですが、フィールドの値が拡大変換によって boolean 型に変換できない場合は IllegalArgumentException がスローされます。
例外:
IllegalAccessException - 基本となるコンストラクタにアクセスできない場合
IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド (またはそのサブクラスか実装側) を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはフィールドの値が拡大変換によって boolean 型に変換できない場合
NullPointerException - 指定されたオブジェクトが null で、フィールドがインスタンスフィールドの場合
ExceptionInInitializerError - このメソッドによる初期化が失敗した場合
関連項目:
get(java.lang.Object)

getByte

public byte getByte(Object obj)
             throws IllegalArgumentException,
                    IllegalAccessException
指定されたオブジェクトについて、フィールドの値を byte として取得します。このメソッドの動作は ((Number)get(obj)).byteValue() と同じですが、フィールドの値が拡大変換によって byte 型に変換できない場合は IllegalArgumentException がスローされます。
例外:
IllegalAccessException - 基本となるコンストラクタにアクセスできない場合
IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド (またはそのサブクラスか実装側) を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはフィールドの値が拡大変換によって byte 型に変換できない場合
NullPointerException - 指定されたオブジェクトが null で、フィールドがインスタンスフィールドの場合
ExceptionInInitializerError - このメソッドによる初期化が失敗した場合
関連項目:
get(java.lang.Object)

getChar

public char getChar(Object obj)
             throws IllegalArgumentException,
                    IllegalAccessException
指定されたオブジェクトについて、フィールドの値を char として取得します。このメソッドの動作は ((Character)get(obj)).charValue() と同じですが、フィールドの値が拡大変換によって char 型に変換できない場合は IllegalArgumentException がスローされます。
例外:
IllegalAccessException - 基本となるコンストラクタにアクセスできない場合
IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド (またはそのサブクラスか実装側) を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはフィールドの値が拡大変換によって char 型に変換できない場合
NullPointerException - 指定されたオブジェクトが null で、フィールドがインスタンスフィールドの場合
ExceptionInInitializerError - このメソッドによる初期化が失敗した場合
関連項目:
get(java.lang.Object)

getShort

public short getShort(Object obj)
               throws IllegalArgumentException,
                      IllegalAccessException
指定されたオブジェクトについて、フィールドの値を short として取得します。このメソッドの動作は ((Number)get(obj)).shortValue() と同じですが、フィールドの値が拡大変換によって short 型に変換できない場合は IllegalArgumentException がスローされます。
例外:
IllegalAccessException - 基本となるコンストラクタにアクセスできない場合
IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド (またはそのサブクラスか実装側) を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはフィールドの値が拡大変換によって short 型に変換できない場合
NullPointerException - 指定されたオブジェクトが null で、フィールドがインスタンスフィールドの場合
ExceptionInInitializerError - このメソッドによる初期化が失敗した場合
関連項目:
get(java.lang.Object)

getInt

public int getInt(Object obj)
           throws IllegalArgumentException,
                  IllegalAccessException
指定されたオブジェクトについて、フィールドの値を int として取得します。このメソッドの動作は ((Number)get(obj)).intValue() と同じですが、フィールドの値が拡大変換で int 型に変換できない場合は IllegalArgumentException がスローされます。
例外:
IllegalAccessException - 基本となるコンストラクタにアクセスできない場合
IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド (またはそのサブクラスか実装側) を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはフィールドの値が拡大変換で int 型に変換できない場合
NullPointerException - 指定されたオブジェクトが null で、フィールドがインスタンスフィールドの場合
ExceptionInInitializerError - このメソッドによる初期化が失敗した場合
関連項目:
get(java.lang.Object)

getLong

public long getLong(Object obj)
             throws IllegalArgumentException,
                    IllegalAccessException
指定されたオブジェクトについて、フィールドの値を long として取得します。このメソッドの動作は ((Number)get(obj)).longValue() と同じですが、フィールドの値が拡大変換で long に変換できない場合は IllegalArgumentException がスローされます。
例外:
IllegalAccessException - 基本となるコンストラクタにアクセスできない場合
IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド (またはそのサブクラスか実装側) を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはフィールドの値が拡大変換によって long 型に変換できない場合
NullPointerException - 指定されたオブジェクトが null で、フィールドがインスタンスフィールドの場合
ExceptionInInitializerError - このメソッドによる初期化が失敗した場合
関連項目:
get(java.lang.Object)

getFloat

public float getFloat(Object obj)
               throws IllegalArgumentException,
                      IllegalAccessException
指定されたオブジェクトについて、フィールドの値を float として取得します。このメソッドの動作は ((Number)get(obj)).floatValue() と同じですが、フィールドの値が拡大変換で float 型に変換できない場合は IllegalArgumentException がスローされます。
例外:
IllegalAccessException - 基本となるコンストラクタにアクセスできない場合
IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド (またはそのサブクラスか実装側) を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはフィールドの値が拡大変換によって float 型に変換できない場合
NullPointerException - 指定されたオブジェクトが null で、フィールドがインスタンスフィールドの場合
ExceptionInInitializerError - このメソッドによる初期化が失敗した場合
関連項目:
get(java.lang.Object)

getDouble

public double getDouble(Object obj)
                 throws IllegalArgumentException,
                        IllegalAccessException
指定されたオブジェクトについて、フィールドの値を double として取得します。このメソッドの動作は ((Number)get(obj)).doubleValue() と同じですが、フィールドの値が拡大変換で double 型に変換できない場合は IllegalArgumentException がスローされます。
例外:
IllegalAccessException - 基本となるコンストラクタにアクセスできない場合
IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド (またはそのサブクラスか実装側) を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはフィールドの値が拡大変換によって double 型に変換できない場合
NullPointerException - 指定されたオブジェクトが null で、フィールドがインスタンスフィールドの場合
ExceptionInInitializerError - このメソッドによる初期化が失敗した場合
関連項目:
get(java.lang.Object)

set

public void set(Object obj,
                Object value)
         throws IllegalArgumentException,
                IllegalAccessException
この Field オブジェクトによって表される指定されたオブジェクト引数のフィールドを、指定された新しい値に設定します。基本となるフィールドにプリミティブ型が指定されている場合、新しい値は自動的にラップ解除されます。

動作は次のように進行します。

基本となるフィールドが static である場合、obj 引数は無視されます。オブジェクト引数が null の場合があります。

static ではない場合、基本となるフィールドはインスタンスフィールドです。指定されたオブジェクト引数が null の場合、メソッドは NullPointerException をスローします。指定されたオブジェクト引数が基本となるフィールドを宣言するクラスまたはインタフェースのインスタンスではない場合、メソッドは IllegalArgumentException をスローします。

この Field オブジェクトが Java 言語アクセス制御を実施し、基本となるフィールドにアクセスできない場合、メソッドは IllegalAccessException をスローします。

基本となるフィールドが final の場合、メソッドは IllegalAccessException をスローします。

基本となるフィールドがプリミティブ型である場合、ラップ解除変換が試行され、新しい値をプリミティブ型の値に変換します。この試行が正常に終了しない場合、メソッドは IllegalArgumentException をスローします。

ラップ解除が行われたあとに、新しい値を恒等変換または拡大変換で基本となるフィールドの型に変換できない場合、メソッドは IllegalArgumentException をスローします。

基本となるフィールドが static の場合、フィールドを宣言したクラスがまだ初期化されていないときは、このクラスが初期化されます。

フィールドは、ラップ解除され拡大された新しい値に設定されます。

フィールドが obj の型に隠されている場合、フィールドの値は前述の規則に従って設定されます。

例外:
IllegalAccessException - 基本となるコンストラクタにアクセスできない場合
IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド (またはそのサブクラスか実装側) を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはラップ解除変換が失敗した場合
NullPointerException - 指定されたオブジェクトが null で、フィールドがインスタンスフィールドの場合
ExceptionInInitializerError - このメソッドによる初期化が失敗した場合

setBoolean

public void setBoolean(Object obj,
                       boolean z)
                throws IllegalArgumentException,
                       IllegalAccessException
指定されたオブジェクトについて、フィールドの値を boolean として設定します。このメソッドの動作は set(obj, zObj) と同じです。zObjBoolean オブジェクトを表し、zObj.booleanValue() == z です。
例外:
IllegalAccessException - 基本となるコンストラクタにアクセスできない場合
IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド (またはそのサブクラスか実装側) を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはラップ解除変換が失敗した場合
NullPointerException - 指定されたオブジェクトが null で、フィールドがインスタンスフィールドの場合
ExceptionInInitializerError - このメソッドによる初期化が失敗した場合
関連項目:
set(java.lang.Object, java.lang.Object)

setByte

public void setByte(Object obj,
                    byte b)
             throws IllegalArgumentException,
                    IllegalAccessException
指定されたオブジェクトについて、フィールドの値を byte として設定します。このメソッドの動作は set(obj, bObj) と同じです。bObjByte オブジェクトを表し、bObj.byteValue() == b です。
例外:
IllegalAccessException - 基本となるコンストラクタにアクセスできない場合
IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド (またはそのサブクラスか実装側) を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはラップ解除変換が失敗した場合
NullPointerException - 指定されたオブジェクトが null で、フィールドがインスタンスフィールドの場合
ExceptionInInitializerError - このメソッドによる初期化が失敗した場合
関連項目:
set(java.lang.Object, java.lang.Object)

setChar

public void setChar(Object obj,
                    char c)
             throws IllegalArgumentException,
                    IllegalAccessException
指定されたオブジェクトについて、フィールドの値を char として設定します。このメソッドの動作は set(obj, cObj) と同じです。cObjCharacter オブジェクトを表し、cObj.charValue() == c です。
例外:
IllegalAccessException - 基本となるコンストラクタにアクセスできない場合
IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド (またはそのサブクラスか実装側) を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはラップ解除変換が失敗した場合
NullPointerException - 指定されたオブジェクトが null で、フィールドがインスタンスフィールドの場合
ExceptionInInitializerError - このメソッドによる初期化が失敗した場合
関連項目:
set(java.lang.Object, java.lang.Object)

setShort

public void setShort(Object obj,
                     short s)
              throws IllegalArgumentException,
                     IllegalAccessException
指定されたオブジェクトについて、フィールドの値を short として設定します。このメソッドの動作は set(obj, sObj) と同じです。sObjShort オブジェクトを表し、sObj.shortValue() == s です。
例外:
IllegalAccessException - 基本となるコンストラクタにアクセスできない場合
IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド (またはそのサブクラスか実装側) を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはラップ解除変換が失敗した場合
NullPointerException - 指定されたオブジェクトが null で、フィールドがインスタンスフィールドの場合
ExceptionInInitializerError - このメソッドによる初期化が失敗した場合
関連項目:
set(java.lang.Object, java.lang.Object)

setInt

public void setInt(Object obj,
                   int i)
            throws IllegalArgumentException,
                   IllegalAccessException
指定されたオブジェクトについて、フィールドの値を int として設定します。このメソッドの動作は set(obj, iObj) と同じです。iObjInteger オブジェクトを表し、iObj.intValue() == i です。
例外:
IllegalAccessException - 基本となるコンストラクタにアクセスできない場合
IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド (またはそのサブクラスか実装側) を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはラップ解除変換が失敗した場合
NullPointerException - 指定されたオブジェクトが null で、フィールドがインスタンスフィールドの場合
ExceptionInInitializerError - このメソッドによる初期化が失敗した場合
関連項目:
set(java.lang.Object, java.lang.Object)

setLong

public void setLong(Object obj,
                    long l)
             throws IllegalArgumentException,
                    IllegalAccessException
指定されたオブジェクトについて、フィールドの値を long として設定します。このメソッドの動作は set(obj, lObj) と同じです。lObjLong オブジェクトを表し、lObj.longValue() == l です。
例外:
IllegalAccessException - 基本となるコンストラクタにアクセスできない場合
IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド (またはそのサブクラスか実装側) を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはラップ解除変換が失敗した場合
NullPointerException - 指定されたオブジェクトが null で、フィールドがインスタンスフィールドの場合
ExceptionInInitializerError - このメソッドによる初期化が失敗した場合
関連項目:
set(java.lang.Object, java.lang.Object)

setFloat

public void setFloat(Object obj,
                     float f)
              throws IllegalArgumentException,
                     IllegalAccessException
指定されたオブジェクトについて、フィールドの値を float として設定します。このメソッドの動作は set(obj, fObj) と同じです。fObjFloat オブジェクトを表し、fObj.floatValue() == f です。
例外:
IllegalAccessException - 基本となるコンストラクタにアクセスできない場合
IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド (またはそのサブクラスか実装側) を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはラップ解除変換が失敗した場合
NullPointerException - 指定されたオブジェクトが null で、フィールドがインスタンスフィールドの場合
ExceptionInInitializerError - このメソッドによる初期化が失敗した場合
関連項目:
set(java.lang.Object, java.lang.Object)

setDouble

public void setDouble(Object obj,
                      double d)
               throws IllegalArgumentException,
                      IllegalAccessException
指定されたオブジェクトについて、フィールドの値を double として設定します。このメソッドの動作は set(obj, dObj) と同じです。dObjDouble オブジェクトを表し、dObj.doubleValue() == d です。
例外:
IllegalAccessException - 基本となるコンストラクタにアクセスできない場合
IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド (またはそのサブクラスか実装側) を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはラップ解除変換が失敗した場合
NullPointerException - 指定されたオブジェクトが null で、フィールドがインスタンスフィールドの場合
ExceptionInInitializerError - このメソッドによる初期化が失敗した場合
関連項目:
set(java.lang.Object, java.lang.Object)

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

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