クラスField

すべての実装されたインタフェース:
AnnotatedElement, Member

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

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

導入されたバージョン:
1.1
関連項目:
  • フィールドのサマリー

    インタフェースメンバーで宣言されたフィールド

    DECLARED, PUBLIC
    修飾子と型
    フィールド
    説明
    static final int
    クラスやインタフェースで宣言されたメンバーを識別します。
    static final int
    継承されたメンバーを含む、クラスやインタフェースのすべてのpublicメンバーを識別します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    このフィールドの「アクセス・フラグ」の変更不可能なセットを返します(空の場合もあります)。
    boolean
    このFieldを指定されたオブジェクトと比較します。
    get(Object obj)
    指定されたオブジェクトについて、このFieldによって表されるフィールドの値を返します。
    このFieldによって表されるフィールドの宣言型を指定する型の使用を表すAnnotatedTypeオブジェクトを返します。
    <T extends Annotation>
    T
    getAnnotation(Class<T> annotationClass)
    存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。
    <T extends Annotation>
    T[]
    getAnnotationsByType(Class<T> annotationClass)
    この要素に関連付けられている注釈を返します。
    boolean
    staticまたはインスタンスbooleanフィールドの値を取得します。
    byte
    staticまたはインスタンスbyteフィールドの値を取得します。
    char
    char型、または拡大変換によってchar型に変換可能な別のプリミティブ型のstaticまたはインスタンス・フィールドの値を取得します。
    Fieldオブジェクトによって表されるフィールドを宣言するクラスまたはインタフェースを表すClassオブジェクトを返します。
    double
    double型、または拡大変換によってdouble型に変換可能な別のプリミティブ型のstaticまたはインスタンス・フィールドの値を取得します。
    float
    float型、または拡大変換によってfloat型に変換可能な別のプリミティブ型のstaticまたはインスタンス・フィールドの値を取得します。
    Fieldオブジェクトで表されるフィールドの宣言タイプを表すTypeオブジェクトを返します。
    int
    int型、または拡大変換によってint型に変換可能な別のプリミティブ型のstaticまたはインスタンス・フィールドの値を取得します。
    long
    long型、または拡大変換によってlong型に変換可能な別のプリミティブ型のstaticまたはインスタンス・フィールドの値を取得します。
    int
    Fieldオブジェクトによって表されるフィールドのJava言語修飾子を整数として返します。
    Fieldオブジェクトによって表されるフィールドの名前を返します。
    short
    short型、または拡大変換によってshort型に変換可能な別のプリミティブ型のstaticまたはインスタンス・フィールドの値を取得します。
    Fieldオブジェクトで表されるフィールドの宣言タイプを識別するClassオブジェクトを返します。
    int
    このFieldのハッシュ・コードを返します。
    boolean
    このフィールドが列挙型クラスの要素を表す場合はtrueを返し、そうでない場合はfalseを返します。
    boolean
    このフィールドが合成フィールドである場合はtrueを返し、そうでない場合はfalseを返します。
    void
    set(Object obj, Object value)
    このFieldオブジェクトによって表される指定されたオブジェクト引数のフィールドを、指定された新しい値に設定します。
    void
    setAccessible(boolean flag)
    この反映オブジェクトのaccessibleフラグを指定されたブール値に設定します。
    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として設定します。
    ジェネリック型を含む、このFieldを記述する文字列を返します。
    このFieldを記述する文字列を返します。

    クラスで宣言されたメソッド AccessibleObject

    canAccess, getAnnotations, getDeclaredAnnotation, getDeclaredAnnotations, getDeclaredAnnotationsByType, isAccessible, isAnnotationPresent, setAccessible, trySetAccessible
    修飾子と型
    メソッド
    説明
    final boolean
    呼出し側がこの反映されたオブジェクトにアクセスできるかどうかをテストします。
    この要素に存在する注釈を返します。
    <T extends Annotation>
    T
    getDeclaredAnnotation(Class<T> annotationClass)
    直接存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。
    この要素に直接存在する注釈を返します。
    <T extends Annotation>
    T[]
    getDeclaredAnnotationsByType(Class<T> annotationClass)
    直接存在する間接的に存在する場合は、この要素の指定された型の注釈を返します。
    boolean
    非推奨。
    このメソッドは、Java言語のアクセス制御のチェックが抑制されているかどうかを実際に示しているときに、反映されたオブジェクトにアクセス可能かどうかを調べるというヒントを持つため、非推奨です。
    boolean
    isAnnotationPresent(Class<? extends Annotation> annotationClass)
    指定された型の注釈がこの要素に存在する場合はtrueを返し、そうでない場合はfalseを返します。
    static void
    setAccessible(AccessibleObject[] array, boolean flag)
    反射されたオブジェクトの配列にaccessibleフラグを設定するための便利なメソッド。
    final boolean
    可能な場合は、この反映されたオブジェクトのaccessibleフラグをtrueに設定します。

    クラスオブジェクトで宣言されたメソッド

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • メソッドの詳細

    • setAccessible

      public void setAccessible(boolean flag)
      この反映オブジェクトのaccessibleフラグを指定されたブール値に設定します。 trueは、Java言語アクセス制御の使用時に、反映されたオブジェクトがチェックを抑制する必要があることを示します。 falseは、反映されたオブジェクトが使用されるときにJava言語アクセス制御のチェックを強制することを示し、クラスの説明に示されているバリエーションを示します。

      このメソッドは、Cクラスの呼び出し側がdeclaring class Dmemberへのアクセスを可能にするために使用されます:

      • CDは同じモジュール内にあります。
      • メンバーはpublicであり、Dはパッケージ内のpublicであり、D exportsを含むモジュールは少なくともCを含むモジュールに含まれます。
      • メンバーはprotected staticDはパッケージ内のpublicであり、Dを含むモジュールは少なくともCを含むモジュールにエクスポートし、CDのサブクラスです。
      • Dは、少なくともCを含むモジュールにD opensを含むモジュールがパッケージされています。 名前なしモジュールおよびオープン・モジュール内のすべてのパッケージは、すべてのモジュールに対して開かれているため、Dが名前なしモジュールまたはオープン・モジュールにある場合、このメソッドは常に成功します。

      このメソッドは、次の場合にのみdeclaring class Dmemberへのアクセスを有効にするために、スタック上にコール元クラスがない「JNIコード」で使用できます:

      • メンバーはpublicで、DD exportsが無条件に含まれるパッケージ内のpublicです。

      宣言クラスが呼出し側と異なるモジュールにあり、宣言クラスを含むパッケージが呼出し側のモジュールに対して開かれていない場合、このメソッドは、プライベート・メンバー、デフォルトの(package)アクセス権を持つメンバー、保護されたインスタンス・メンバーまたは保護されたコンストラクタへのアクセスを有効にするために使用できません。

      このリフレクト・オブジェクトが非最終フィールドを表し、このメソッドを使用してアクセスを有効にすると、そのフィールドへの読取り書込みの両方のアクセスが有効になります。

      このリフレクトされたオブジェクトが変更不可な最終フィールドを表す場合、アクセスを有効にすると読み取りアクセスのみが有効になります。 フィールド値を設定しようとすると、 IllegalAccessExceptionがスローされます。 次のフィールドは変更できません:

      • 任意のクラスまたはインタフェースで宣言されたstatic finalフィールド
      • 「レコード」で宣言された最終フィールド
      • 「非表示クラス」で宣言された最終フィールド

      このリフレクト・オブジェクトが、レコード・クラスまたは非表示クラスではないクラスの非静的finalフィールドを表す場合、アクセスを有効にすると読取りアクセスが有効になります。 フィールド値を setしようとしたときに、書き込みアクセスが許可されるかどうかをチェックします。

      オーバーライド:
      クラスAccessibleObjectsetAccessible
      パラメータ:
      flag - accessibleフラグの新しい値
      スロー:
      InaccessibleObjectException - アクセスを有効にできない場合
      外部仕様
      関連項目:
    • getDeclaringClass

      public Class<?> getDeclaringClass()
      Fieldオブジェクトによって表されるフィールドを宣言するクラスまたはインタフェースを表すClassオブジェクトを返します。
      定義:
      getDeclaringClass、インタフェースMember
      戻り値:
      基本となるメンバーの宣言クラスを表すオブジェクト
    • getName

      public String getName()
      Fieldオブジェクトによって表されるフィールドの名前を返します。
      定義:
      getName、インタフェースMember
      戻り値:
      基本となるメンバーの単純名
    • getModifiers

      public int getModifiers()
      Fieldオブジェクトによって表されるフィールドのJava言語修飾子を整数として返します。 修飾子の復号化には、Modifierクラスを使用する必要があります。
      定義:
      getModifiers、インタフェースMember
      戻り値:
      基本となるメンバーのJava言語修飾子
      Java言語仕様を参照してください:
      「8.3 フィールド宣言」
      「9.3 フィールド(定数)宣言」
      関連項目:
    • accessFlags

      public Set<AccessFlag> accessFlags()
      このフィールドの「アクセス・フラグ」の変更不可能なセットを返します(空の場合もあります)。
      定義:
      インタフェースMember内のaccessFlags
      戻り値:
      このフィールドの「アクセス・フラグ」の変更不可セット(空の場合あり)
      Java Virtual Machine仕様を参照してください:
      4.5 フィールド
      導入されたバージョン:
      20
      関連項目:
    • isEnumConstant

      public boolean isEnumConstant()
      このフィールドが列挙型クラスの要素を表す場合はtrueを返し、そうでない場合はfalseを返します。
      戻り値:
      このフィールドが列挙型クラスの要素を表す場合にかぎりtrue
      Java言語仕様を参照してください:
      8.9.1 enum定数
      導入されたバージョン:
      1.5
    • isSynthetic

      public boolean isSynthetic()
      このフィールドが合成フィールドである場合はtrueを返し、そうでない場合はfalseを返します。
      定義:
      isSynthetic、インタフェースMember
      戻り値:
      このフィールドが、『Java言語仕様』で定義されている合成フィールドである場合に限り、true
      導入されたバージョン:
      1.5
      関連項目:
    • getType

      public Class<?> getType()
      Fieldオブジェクトで表されるフィールドの宣言タイプを識別するClassオブジェクトを返します。
      戻り値:
      このオブジェクトが表すフィールドの宣言型を識別するClassオブジェクト
    • getGenericType

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

      宣言された型のフィールドがパラメータ化された型である場合、返されるTypeオブジェクトは、ソース・コードで使用される実際の型引数を正確に反映する必要があります。

      基本となるフィールドの型が、型変数またはパラメータ化された型の場合、仮パラメータ型は作成されます。 そうでない場合、例外タイプは解決されます。

      戻り値:
      このFieldオブジェクトで表されるフィールドの宣言タイプを表すTypeオブジェクト
      スロー:
      GenericSignatureFormatError - 汎用フィールド・シグネチャが「Java Virtual Machine仕様」で指定された形式に準拠していない場合
      TypeNotPresentException - 基礎となるフィールドのジェネリック・タイプ・シグネチャが、存在しないクラスまたはインタフェース宣言を参照している場合
      MalformedParameterizedTypeException - 基本となるフィールドのジェネリック・シグネチャが、なんらかの理由によりインスタンス化できないパラメータ化された型を参照する場合
      導入されたバージョン:
      1.5
    • equals

      public boolean equals(Object obj)
      このFieldを指定されたオブジェクトと比較します。 オブジェクトが同じ場合にはtrueを返します。 2つのFieldオブジェクトは、同じクラスで宣言され、同じ名前と型を持つ場合に等しいとみなされます。
      オーバーライド:
      equals、クラスObject
      パラメータ:
      obj - 比較対象の参照オブジェクト。
      戻り値:
      このオブジェクトがobj引数と同じである場合はtrue、それ以外の場合はfalse
      関連項目:
    • hashCode

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

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

      修飾子は、『Java言語仕様』で規定された正規の順序で格納されます。 これは、publicprotected、またはprivateがまず配置され、次にほかの修飾子が次の順序で続きます: staticfinaltransientvolatile

      オーバーライド:
      toString、クラスObject
      戻り値:
      このFieldを記述する文字列
      Java言語仕様を参照してください:
      8.3.1 フィールド修飾子
    • toGenericString

      public String toGenericString()
      ジェネリック型を含む、このFieldを記述する文字列を返します。 この文字列の書式は、(存在する場合には)フィールドのアクセス修飾子、ジェネリック・フィールド型、空白、フィールドを宣言するクラスの完全指定名、ピリオド、フィールド名が順番に続きます。

      修飾子は、『Java言語仕様』で規定された正規の順序で格納されます。 これは、publicprotected、またはprivateがまず配置され、次にほかの修飾子が次の順序で続きます: staticfinaltransientvolatile

      戻り値:
      ジェネリック型を含む、このFieldを記述する文字列
      Java言語仕様を参照してください:
      8.3.1 フィールド修飾子
      導入されたバージョン:
      1.5
    • get

      指定されたオブジェクトについて、このFieldによって表されるフィールドの値を返します。 プリミティブ型の場合、オブジェクト内に自動的に格納されてから返されます。

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

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

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

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

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

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

      パラメータ:
      obj - 表現されるフィールド値の抽出元オブジェクト
      戻り値:
      オブジェクトobj内で表現されるフィールドの値。プリミティブ値は適切なオブジェクト内にラップされてから返される
      スロー:
      IllegalAccessException - このFieldオブジェクトがJava言語アクセス制御を実施しており、基本となるフィールドにアクセスできない場合。
      IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド(またはそのサブクラスか実装側)を宣言するクラスまたはインタフェースのインスタンスではない場合。
      NullPointerException - 指定されたオブジェクトがnullで、フィールドがインスタンス・フィールドの場合。
      ExceptionInInitializerError - このメソッドによる初期化に失敗した場合。
    • getBoolean

      public boolean getBoolean(Object obj) throws IllegalArgumentException, IllegalAccessException
      staticまたはインスタンスbooleanフィールドの値を取得します。
      パラメータ:
      obj - boolean値の抽出元のオブジェクト
      戻り値:
      booleanフィールドの値
      スロー:
      IllegalAccessException - このFieldオブジェクトがJava言語アクセス制御を実施しており、基本となるフィールドにアクセスできない場合。
      IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド(またはそのサブクラスか実装側)を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはフィールドの値が拡大変換によってboolean型に変換できない場合。
      NullPointerException - 指定されたオブジェクトがnullで、フィールドがインスタンス・フィールドの場合。
      ExceptionInInitializerError - このメソッドによる初期化に失敗した場合。
      関連項目:
    • getByte

      public byte getByte(Object obj) throws IllegalArgumentException, IllegalAccessException
      staticまたはインスタンスbyteフィールドの値を取得します。
      パラメータ:
      obj - byte値の抽出元のオブジェクト
      戻り値:
      byteフィールドの値
      スロー:
      IllegalAccessException - このFieldオブジェクトがJava言語アクセス制御を実施しており、基本となるフィールドにアクセスできない場合。
      IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド(またはそのサブクラスか実装側)を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはフィールドの値が拡大変換によってbyte型に変換できない場合。
      NullPointerException - 指定されたオブジェクトがnullで、フィールドがインスタンス・フィールドの場合。
      ExceptionInInitializerError - このメソッドによる初期化に失敗した場合。
      関連項目:
    • getChar

      public char getChar(Object obj) throws IllegalArgumentException, IllegalAccessException
      char型、または拡大変換によってchar型に変換可能な別のプリミティブ型のstaticまたはインスタンス・フィールドの値を取得します。
      パラメータ:
      obj - char値の抽出元のオブジェクト
      戻り値:
      char型に変換されたフィールドの値
      スロー:
      IllegalAccessException - このFieldオブジェクトがJava言語アクセス制御を実施しており、基本となるフィールドにアクセスできない場合。
      IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド(またはそのサブクラスか実装側)を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはフィールドの値が拡大変換によってchar型に変換できない場合。
      NullPointerException - 指定されたオブジェクトがnullで、フィールドがインスタンス・フィールドの場合。
      ExceptionInInitializerError - このメソッドによる初期化に失敗した場合。
      関連項目:
    • getShort

      public short getShort(Object obj) throws IllegalArgumentException, IllegalAccessException
      short型、または拡大変換によってshort型に変換可能な別のプリミティブ型のstaticまたはインスタンス・フィールドの値を取得します。
      パラメータ:
      obj - short値の抽出元のオブジェクト
      戻り値:
      short型に変換されたフィールドの値
      スロー:
      IllegalAccessException - このFieldオブジェクトがJava言語アクセス制御を実施しており、基本となるフィールドにアクセスできない場合。
      IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド(またはそのサブクラスか実装側)を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはフィールドの値が拡大変換によってshort型に変換できない場合。
      NullPointerException - 指定されたオブジェクトがnullで、フィールドがインスタンス・フィールドの場合。
      ExceptionInInitializerError - このメソッドによる初期化に失敗した場合。
      関連項目:
    • getInt

      public int getInt(Object obj) throws IllegalArgumentException, IllegalAccessException
      int型、または拡大変換によってint型に変換可能な別のプリミティブ型のstaticまたはインスタンス・フィールドの値を取得します。
      パラメータ:
      obj - int値の抽出元のオブジェクト
      戻り値:
      int型に変換されたフィールドの値
      スロー:
      IllegalAccessException - このFieldオブジェクトがJava言語アクセス制御を実施しており、基本となるフィールドにアクセスできない場合。
      IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド(またはそのサブクラスか実装側)を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはフィールドの値が拡大変換によってint型に変換できない場合。
      NullPointerException - 指定されたオブジェクトがnullで、フィールドがインスタンス・フィールドの場合。
      ExceptionInInitializerError - このメソッドによる初期化に失敗した場合。
      関連項目:
    • getLong

      public long getLong(Object obj) throws IllegalArgumentException, IllegalAccessException
      long型、または拡大変換によってlong型に変換可能な別のプリミティブ型のstaticまたはインスタンス・フィールドの値を取得します。
      パラメータ:
      obj - long値の抽出元のオブジェクト
      戻り値:
      long型に変換されたフィールドの値
      スロー:
      IllegalAccessException - このFieldオブジェクトがJava言語アクセス制御を実施しており、基本となるフィールドにアクセスできない場合。
      IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド(またはそのサブクラスか実装側)を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはフィールドの値が拡大変換によってlong型に変換できない場合。
      NullPointerException - 指定されたオブジェクトがnullで、フィールドがインスタンス・フィールドの場合。
      ExceptionInInitializerError - このメソッドによる初期化に失敗した場合。
      関連項目:
    • getFloat

      public float getFloat(Object obj) throws IllegalArgumentException, IllegalAccessException
      float型、または拡大変換によってfloat型に変換可能な別のプリミティブ型のstaticまたはインスタンス・フィールドの値を取得します。
      パラメータ:
      obj - float値の抽出元のオブジェクト
      戻り値:
      float型に変換されたフィールドの値
      スロー:
      IllegalAccessException - このFieldオブジェクトがJava言語アクセス制御を実施しており、基本となるフィールドにアクセスできない場合。
      IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド(またはそのサブクラスか実装側)を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはフィールドの値が拡大変換によってfloat型に変換できない場合。
      NullPointerException - 指定されたオブジェクトがnullで、フィールドがインスタンス・フィールドの場合。
      ExceptionInInitializerError - このメソッドによる初期化に失敗した場合。
      関連項目:
    • getDouble

      public double getDouble(Object obj) throws IllegalArgumentException, IllegalAccessException
      double型、または拡大変換によってdouble型に変換可能な別のプリミティブ型のstaticまたはインスタンス・フィールドの値を取得します。
      パラメータ:
      obj - double値の抽出元のオブジェクト
      戻り値:
      double型に変換されたフィールドの値
      スロー:
      IllegalAccessException - このFieldオブジェクトがJava言語アクセス制御を実施しており、基本となるフィールドにアクセスできない場合。
      IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド(またはそのサブクラスか実装側)を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはフィールドの値が拡大変換によってdouble型に変換できない場合。
      NullPointerException - 指定されたオブジェクトがnullで、フィールドがインスタンス・フィールドの場合。
      ExceptionInInitializerError - このメソッドによる初期化に失敗した場合。
      関連項目:
    • set

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

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

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

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

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

      基礎となるフィールドがfinalである場合、このFieldオブジェクトは、次のすべての条件がtrueである場合にのみ書込みアクセス権を持ちます(Dはフィールドの宣言クラスです)。

      • setAccessible(true)は、このFieldオブジェクトに対して成功しました。
      • 呼び出し元のモジュールに対して final field mutation is enabled
      • 次の条件の少なくとも1つが保持されます。
        1. Dと呼出し側クラスは、同じモジュール内にあります。
        2. フィールドはpublicで、Dを含むモジュールが少なくとも呼出し側のモジュールにエクスポートするパッケージのpublicDです。
        3. Dは、呼出し側のモジュールに対してオープンなパッケージ内にあります。
      • Dレコード・クラスではありません。
      • D非表示クラスではありません。
      • このフィールドは非静的です。

      前述の条件のいずれかが満たされない場合、このメソッドはIllegalAccessExceptionをスローします。

      これらの条件は、アクセス・チェックを抑制するためにsetAccessible(boolean)で指定された条件よりも制限的です。 特に、パッケージをエクスポートまたはオープンするためのモジュールの更新は、Fieldで定義されたsetメソッドを使用して最終フィールドへの書込みアクセスを許可するために使用できません。 Dを含むモジュールがaddExportsで更新され、パッケージをコール元のモジュールにエクスポートした場合、条件(b)は満たされません。 Dを含むモジュールがaddOpensで更新され、呼出し側のモジュールにパッケージが開かれると、条件(c)は満たされません。

      このメソッドは、スタック上に呼び出し元クラスを持たないJNIコードによって呼び出すことができます。 その場合、基礎となるフィールドがfinalである場合、このFieldオブジェクトは、次のすべての条件がtrueである場合にのみ書込みアクセス権を持ちます(Dはフィールドの宣言クラスです)。

      • このFieldオブジェクトに対してsetAccessible(true)が成功しました。
      • 名前のないモジュールに対して最終フィールド変更が有効になります。
      • フィールドはpublicで、Dは、すべてのモジュールにエクスポートされるパッケージのpublicです。
      • Dレコード・クラスではありません。
      • D非表示クラスではありません。
      • このフィールドは非静的です。

      前述の条件のいずれかが満たされない場合、このメソッドはIllegalAccessExceptionをスローします。

      この方法でfinalフィールドを設定することが有用なのは、プログラムのほかの部分からアクセスできるようにする前に空白のfinalフィールドを持つクラスのインスタンスを直列化復元や再構築を行うときだけです。 ほかのコンテキストで使用すると、プログラムのほかの部分がこのフィールドの元の値を使用し続けるなどの予測できない影響が発生する可能性があります。

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

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

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

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

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

      パラメータ:
      obj - フィールドを変更するオブジェクト
      value - 変更中のobjの新しいフィールド値
      スロー:
      IllegalAccessException - このFieldオブジェクトがJava言語アクセス制御を実施しており、基礎となるフィールドがアクセス不可またはfinalの場合、またはこのFieldオブジェクトに書込みアクセス権がない場合。
      IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド(またはそのサブクラスか実装側)を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはラップ解除変換が失敗した場合。
      NullPointerException - 指定されたオブジェクトがnullで、フィールドがインスタンス・フィールドの場合。
      ExceptionInInitializerError - このメソッドによる初期化に失敗した場合。
      関連項目:
    • setBoolean

      public void setBoolean(Object obj, boolean z) throws IllegalArgumentException, IllegalAccessException
      指定されたオブジェクトについて、フィールドの値をbooleanとして設定します。 このメソッドはset(obj, zObj)と同等です(zObjBooleanオブジェクトであり、zObj.booleanValue()== z)。
      パラメータ:
      obj - フィールドを変更するオブジェクト
      z - 変更中のobjの新しいフィールド値
      スロー:
      IllegalAccessException - このFieldオブジェクトがJava言語アクセス制御を実施しており、基礎となるフィールドがアクセス不可またはfinalの場合、またはこのFieldオブジェクトに書込みアクセス権がない場合。
      IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド(またはそのサブクラスか実装側)を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはラップ解除変換が失敗した場合。
      NullPointerException - 指定されたオブジェクトがnullで、フィールドがインスタンス・フィールドの場合。
      ExceptionInInitializerError - このメソッドによる初期化に失敗した場合。
      関連項目:
    • setByte

      public void setByte(Object obj, byte b) throws IllegalArgumentException, IllegalAccessException
      指定されたオブジェクトについて、フィールドの値をbyteとして設定します。 このメソッドはset(obj, bObj)と同等です(bObjByteオブジェクトであり、bObj.byteValue()== b)。
      パラメータ:
      obj - フィールドを変更するオブジェクト
      b - 変更中のobjの新しいフィールド値
      スロー:
      IllegalAccessException - このFieldオブジェクトがJava言語アクセス制御を実施しており、基礎となるフィールドがアクセス不可またはfinalの場合、またはこのFieldオブジェクトに書込みアクセス権がない場合。
      IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド(またはそのサブクラスか実装側)を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはラップ解除変換が失敗した場合。
      NullPointerException - 指定されたオブジェクトがnullで、フィールドがインスタンス・フィールドの場合。
      ExceptionInInitializerError - このメソッドによる初期化に失敗した場合。
      関連項目:
    • setChar

      public void setChar(Object obj, char c) throws IllegalArgumentException, IllegalAccessException
      指定されたオブジェクトについて、フィールドの値をcharとして設定します。 このメソッドはset(obj, cObj)と同等です(cObjCharacterオブジェクトであり、cObj.charValue()== c)。
      パラメータ:
      obj - フィールドを変更するオブジェクト
      c - 変更中のobjの新しいフィールド値
      スロー:
      IllegalAccessException - このFieldオブジェクトがJava言語アクセス制御を実施しており、基礎となるフィールドがアクセス不可またはfinalの場合、またはこのFieldオブジェクトに書込みアクセス権がない場合。
      IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド(またはそのサブクラスか実装側)を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはラップ解除変換が失敗した場合。
      NullPointerException - 指定されたオブジェクトがnullで、フィールドがインスタンス・フィールドの場合。
      ExceptionInInitializerError - このメソッドによる初期化に失敗した場合。
      関連項目:
    • setShort

      public void setShort(Object obj, short s) throws IllegalArgumentException, IllegalAccessException
      指定されたオブジェクトについて、フィールドの値をshortとして設定します。 このメソッドはset(obj, sObj)と同等です(sObjShortオブジェクトであり、sObj.shortValue()== s)。
      パラメータ:
      obj - フィールドを変更するオブジェクト
      s - 変更中のobjの新しいフィールド値
      スロー:
      IllegalAccessException - このFieldオブジェクトがJava言語アクセス制御を実施しており、基礎となるフィールドがアクセス不可またはfinalの場合、またはこのFieldオブジェクトに書込みアクセス権がない場合。
      IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド(またはそのサブクラスか実装側)を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはラップ解除変換が失敗した場合。
      NullPointerException - 指定されたオブジェクトがnullで、フィールドがインスタンス・フィールドの場合。
      ExceptionInInitializerError - このメソッドによる初期化に失敗した場合。
      関連項目:
    • setInt

      public void setInt(Object obj, int i) throws IllegalArgumentException, IllegalAccessException
      指定されたオブジェクトについて、フィールドの値をintとして設定します。 このメソッドはset(obj, iObj)と等価です。ここで、iObjIntegerオブジェクトであり、iObj.intValue() == iオブジェクトです。
      パラメータ:
      obj - フィールドを変更するオブジェクト
      i - 変更中のobjの新しいフィールド値
      スロー:
      IllegalAccessException - このFieldオブジェクトがJava言語アクセス制御を実施しており、基礎となるフィールドがアクセス不可またはfinalの場合、またはこのFieldオブジェクトに書込みアクセス権がない場合。
      IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド(またはそのサブクラスか実装側)を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはラップ解除変換が失敗した場合。
      NullPointerException - 指定されたオブジェクトがnullで、フィールドがインスタンス・フィールドの場合。
      ExceptionInInitializerError - このメソッドによる初期化に失敗した場合。
      関連項目:
    • setLong

      public void setLong(Object obj, long l) throws IllegalArgumentException, IllegalAccessException
      指定されたオブジェクトについて、フィールドの値をlongとして設定します。 このメソッドはset(obj, lObj)と同等です(lObjLongオブジェクトであり、lObj.longValue()== l)。
      パラメータ:
      obj - フィールドを変更するオブジェクト
      l - 変更中のobjの新しいフィールド値
      スロー:
      IllegalAccessException - このFieldオブジェクトがJava言語アクセス制御を実施しており、基礎となるフィールドがアクセス不可またはfinalの場合、またはこのFieldオブジェクトに書込みアクセス権がない場合。
      IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド(またはそのサブクラスか実装側)を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはラップ解除変換が失敗した場合。
      NullPointerException - 指定されたオブジェクトがnullで、フィールドがインスタンス・フィールドの場合。
      ExceptionInInitializerError - このメソッドによる初期化に失敗した場合。
      関連項目:
    • setFloat

      public void setFloat(Object obj, float f) throws IllegalArgumentException, IllegalAccessException
      指定されたオブジェクトについて、フィールドの値をfloatとして設定します。 このメソッドはset(obj, fObj)と同等です(fObjFloatオブジェクトであり、fObj.floatValue()== f)。
      パラメータ:
      obj - フィールドを変更するオブジェクト
      f - 変更中のobjの新しいフィールド値
      スロー:
      IllegalAccessException - このFieldオブジェクトがJava言語アクセス制御を実施しており、基礎となるフィールドがアクセス不可またはfinalの場合、またはこのFieldオブジェクトに書込みアクセス権がない場合。
      IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド(またはそのサブクラスか実装側)を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはラップ解除変換が失敗した場合。
      NullPointerException - 指定されたオブジェクトがnullで、フィールドがインスタンス・フィールドの場合。
      ExceptionInInitializerError - このメソッドによる初期化に失敗した場合。
      関連項目:
    • setDouble

      public void setDouble(Object obj, double d) throws IllegalArgumentException, IllegalAccessException
      指定されたオブジェクトについて、フィールドの値をdoubleとして設定します。 このメソッドはset(obj, dObj)と同等です(dObjDoubleオブジェクトであり、dObj.doubleValue()== d)。
      パラメータ:
      obj - フィールドを変更するオブジェクト
      d - 変更中のobjの新しいフィールド値
      スロー:
      IllegalAccessException - このFieldオブジェクトがJava言語アクセス制御を実施しており、基礎となるフィールドがアクセス不可またはfinalの場合、またはこのFieldオブジェクトに書込みアクセス権がない場合。
      IllegalArgumentException - 指定されたオブジェクトが基本となるフィールド(またはそのサブクラスか実装側)を宣言するクラスまたはインタフェースのインスタンスではない場合、あるいはラップ解除変換が失敗した場合。
      NullPointerException - 指定されたオブジェクトがnullで、フィールドがインスタンス・フィールドの場合。
      ExceptionInInitializerError - このメソッドによる初期化に失敗した場合。
      関連項目:
    • getAnnotation

      public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
      存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。

      このメソッドによって返される注釈は宣言注釈であることに注意してください。

      定義:
      getAnnotation、インタフェースAnnotatedElement
      オーバーライド:
      getAnnotation、クラスAccessibleObject
      型パラメータ:
      T - 問合せ対象および存在する場合は戻す注釈のタイプ
      パラメータ:
      annotationClass - 注釈型に対応するClassオブジェクト
      戻り値:
      存在する場合は、この要素の指定された注釈型の注釈。そうでない場合はnull
      スロー:
      NullPointerException - 指定された注釈クラスがnullの場合
      導入されたバージョン:
      1.5
    • getAnnotationsByType

      public <T extends Annotation> T[] getAnnotationsByType(Class<T> annotationClass)
      この要素に関連付けられている注釈を返します。 この要素に関連付けられている注釈がない場合、戻り値は長さ0の配列です。 このメソッドとAnnotatedElement.getAnnotation(Class)の違いは、引数が「繰返し可能な注釈タイプ」 (JLS 9.6)であるかどうかをこのメソッドが検出し、その場合、"検索"がコンテナ注釈を使用してそのタイプの注釈を検索しようとすることです。 このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。

      このメソッドによって返される注釈は宣言注釈であることに注意してください。

      定義:
      getAnnotationsByType、インタフェースAnnotatedElement
      オーバーライド:
      getAnnotationsByType、クラスAccessibleObject
      型パラメータ:
      T - 問合せ対象および存在する場合は戻す注釈のタイプ
      パラメータ:
      annotationClass - 注釈型に対応するClassオブジェクト
      戻り値:
      この要素に関連付けられている場合は、この要素の指定された注釈型のすべての注釈。そうでない場合は長さ0の配列
      スロー:
      NullPointerException - 指定された注釈クラスがnullの場合
      導入されたバージョン:
      1.8
    • getAnnotatedType

      public AnnotatedType getAnnotatedType()
      このFieldによって表されるフィールドの宣言型を指定する型の使用を表すAnnotatedTypeオブジェクトを返します。
      戻り値:
      このFieldが表すフィールドの宣言型を表すオブジェクト
      導入されたバージョン:
      1.8