目次 | 前項目 | 次項目 Java コアリフレクション


クラス java.lang.reflect.Field

    

    package java.lang.reflect;

    public final class Field extends Object implements Member

Field は、クラスやインタフェースの 1 つのフィールドに関する情報およびそこへのアクセスを提供します。反射されるフィールドは、クラス変数 (static フィールド) でもインスタンス変数 (インスタンスフィールド) でも構いません。

Field オブジェクトを生成できるのは、Java 仮想マシンだけです。ユーザコードは、クラス Class のメソッド getField, getFields, getDeclaredField, および getDeclaredFields から Field 参照を獲得します。

Field では、getset の演算中に拡張変換が可能ですが、縮小変換が行われると IllegalArgumentException をスローします。


メソッド

getDeclaringClass

    public Class getDeclaringClass()

この Field オブジェクトが表すフィールドを宣言する、クラスまたはインタフェースを表す Class オブジェクトを返します。

getName

    public String getName()

この Field オブジェクトが表すフィールドの単純名を返します。

getModifiers

    public int getModifiers()

この Field オブジェクトが表すフィールドの Java 言語修飾子を、整数型にコード化して返します。修飾子の解読には、Modifier クラスを使います。

修飾子のコード化は、Java 仮想マシン仕様の表 4.3 で定義されています。

getType

    public Class getType()

この Field オブジェクトが表すフィールドの宣言型を識別する、Class オブジェクトを返します。

equals

    public boolean equals(Object obj)

指定の Object とこの Field を比較します。この 2 つが同じときは true を返し、異なるときは false を返します。2 つの Field オブジェクトの宣言クラスと名前が同じ場合、この 2 つのオブジェクトは同じです。

このメソッドは、クラス Objectequals メソッドをオーバーライドします。

hashCode

    public int hashCode()

この Field オブジェクトのハッシュコードを返します。これは Field の宣言クラス名およびその単純名の排他的論理和として計算されます。

このメソッドは、クラス ObjecthashCode メソッドをオーバーライドします。

toString

    public String toString()

この Field を記述する String オブジェクトを返します。形式は、表示フィールドの Java 言語修飾子で、もしあれば、その後にフィールド型、スペース、フィールドを宣言するクラスの完全な修飾名、ピリオド、フィールド名が続きます。以下に例を示します:

    

        public static final int java.lang.Thread.MIN_PRIORITY

        private int java.io.FileDescriptor.fd

修飾子は、Java 言語仕様に指定の標準順序で置かれます。つまり、public, protected, または private が最初にきて、その後に以下の順序でその他の修飾子が続きます: static, final, transient, および volatile

このメソッドは、クラス ObjecttoString メソッドをオーバーライドします。

get

    public Object get(Object obj) 

        throws NullPointerException, IllegalArgumentException,

            IllegalAccessException

指定オブジェクト上のこの Field が表すフィールド値を戻します。値はプリミティブ型を持つ場合、自動的にオブジェクトにラップされます。

基本フィールドの値は、次のようにして獲得します:

より効率的な Field.get のプリミティブなものも提供されます。これらにはファイナルラッピング変換は不要です。これらについては、以下で説明します。

getBoolean

    public boolean getBoolean(Object obj)

        throws NullPointerException, IllegalArgumentException,

            IllegalAccessException

指定オブジェクト上のこの Field オブジェクトが表すフィールド値を、boolean として返します。手続きの詳細は、Field.get を参照してください。

基本フィールドの型が boolean でないと、メソッドは IllegalArgumentException をスローします。

getByte

    public byte getByte(Object obj)

        throws NullPointerException, IllegalArgumentException,

        IllegalAccessException

指定オブジェクト上のこの Field オブジェクトが表すフィールド値を、byte として返します。手続きの詳細は、Field.get を参照してください。

基本フィールドの型が byte でないと、メソッドは IllegalArgumentException をスローします。

getChar

    public char getChar(Object obj)

        throws NullPointerException, IllegalArgumentException,

            IllegalAccessException

指定オブジェクト上のこの Field オブジェクトが表すフィールド値を、char として返します。手続きの詳細は、Field.get を参照してください。

基本フィールド値の型が char でないと、メソッドは IllegalArgumentException をスローします。

getShort

    public short getShort(Object obj)

        throws NullPointerException, IllegalArgumentException,

            IllegalAccessException

指定オブジェクト上のこの Field オブジェクトが表すフィールド値を、short として返します。手続きの詳細は、Field.get を参照してください。

識別変換または拡張変換を用いて、基本フィールド値を short に変換できないと、メソッドは IllegalArgumentException をスローします。

getInt

    public int getInt(Object obj)

        throws NullPointerException, IllegalArgumentException,

            IllegalAccessException

指定オブジェクト上のこの Field オブジェクトが表すフィールド値を、int として返します。手続きの詳細は、Field.get を参照してください。

識別変換または拡張変換を用いて、基本フィールド値を int に変換できないと、メソッドは IllegalArgumentException をスローします。

getLong

    public long getLong(Object obj)

        throws NullPointerException, IllegalArgumentException,

            IllegalAccessException

指定オブジェクト上のこの Field オブジェクトが表すフィールド値を、long として返します。手続きの詳細は、Field.get を参照してください。

識別変換または拡張変換を用いて、基本フィールド値を long に変換できないと、メソッドは IllegalArgumentException を返します。

getFloat

    public float getFloat(Object obj)

        throws NullPointerException, IllegalArgumentException,

            IllegalAccessException

指定オブジェクト上のこの Field オブジェクトが表すフィールド値を、float として返します。手続きの詳細は、Field.get を参照してください。

識別変換または拡張変換を用いて、基本フィールド値を float に変換できないと、メソッドは IllegalArgumentException をスローします。

getDouble

    public double getDouble(Object obj)

        throws NullPointerException, IllegalArgumentException,

            IllegalAccessException

指定オブジェクト上のこの Field オブジェクトが表すフィールド値を、double として返します。手続きの詳細は、Field.get を参照してください。

識別変換または拡張変換を用いて、基本フィールド値を double に変換できないと、メソッドは IllegalArgumentException をスローします。

set

    public void set(Object obj, Object value)

        throws NullPointerException, IllegalArgumentException,

            IllegalAccessException

指定オブジェクト引数上のこの Field オブジェクトが表すフィールドを、指定の新規値に設定します。基本フィールドにプリミティブ型がある場合、新規値は自動的にアンラップされます。

演算処理は、以下のように行います:

より効率的な Field.set のプリミティブなものも提供されます。これらにはファイナルラッピング変換は不要です。これらについては、以下で説明します。

setBoolean

    public void setBoolean(Object obj, boolean z)

        throws NullPointerException, IllegalArgumentException,

            IllegalAccessException

指定オブジェクト引数上の Field オブジェクトが表すフィールド値を、指定の boolean 値に設定します。手続きの詳細は、Field.set を参照してください。

基本フィールド型が boolean でないと、メソッドは IllegalArgumentException をスローします。

setByte

    public void setByte(Object obj, byte b)

        throws NullPointerException, IllegalArgumentException,

            IllegalAccessException

指定オブジェクト引数上のこの Field が表すフィールド値を、指定の byte 値に設定します。手続きの詳細は、Field.set を参照してください。

識別変換または拡張変換を使って、新規値を基本フィールド型に変換できない場合、メソッドは IllegalArgumentException をスローします。

setChar

    public void setChar(Object obj, char c)

        throws NullPointerException, IllegalArgumentException,

            IllegalAccessException

指定オブジェクト引数上のこの Field オブジェクトが表すフィールド値を、指定の char 値に設定します。手続きの詳細は、Field.set を参照してください。

識別変換または拡張変換を使って、新規値を基本フィールド型に変換できない場合、メソッドは IllegalArgumentException をスローします。

setShort

    public void setShort(Object obj, short s)

        throws NullPointerException, IllegalArgumentException,

            IllegalAccessException

指定オブジェクト引数上のこの Field オブジェクトが表すフィールド値を、指定の short 値に設定します。手続きの詳細は、Field.set を参照してください。

識別変換または拡張変換を使って、新規値を基本フィールド型に変換できない場合、メソッドは IllegalArgumentException をスローします。

setInt

    public void setInt(Object obj, int i)

        throws NullPointerException, IllegalArgumentException,

            IllegalAccessException

指定オブジェクト引数上のこの Field オブジェクトが表すフィールド値を、指定の int 値に設定します。手続きの詳細は、Field.set を参照してください。

識別変換または拡張変換を使って、新規値を基本フィールド型に変換できない場合、メソッドは IllegalArgumentException をスローします。

setLong

    public void setLong(Object obj, long l)

        throws NullPointerException, IllegalArgumentException,

            IllegalAccessException

指定オブジェクト引数上のこの Field オブジェクトが表すフィールド値を、指定の long 値に設定します。手続きの詳細は、Field.set を参照してください。

識別変換または拡張変換を使って、新規値を基本フィールド型に変換できない場合、メソッドは IllegalArgumentException をスローします。

setFloat

    public void setFloat(Object obj, float f)

        throws NullPointerException, IllegalArgumentException,

            IllegalAccessException

指定オブジェクト引数上のこの Field オブジェクトが表すフィールド値を、指定の float 値に設定します。手続きの詳細は、Field.set を参照してください。

識別変換または拡張変換を使って、新規値を基本フィールド型に変換できない場合、メソッドは IllegalArgumentException をスローします。

setDouble

    public void setDouble(Object obj, double d)

        throws NullPointerException, IllegalArgumentException,

            IllegalAccessException

指定オブジェクト引数上のこの Field オブジェクトが表すフィールド値を、指定の double 値に設定します。手続きの詳細は、Field.set を参照してください。

基本フィールド型が double でないと、メソッドは IllegalArgumentException をスローします。



目次 | 前項目 | 次項目
Copyright (C) 1996, 1997 Sun Microsystems, Inc. All rights reserved.