Javareflect-field-get

提供:Dev Guides
移動先:案内検索

java.lang.reflect.Field.get()メソッドの例

説明

  • java.lang.reflect.Field.get(Object obj)*メソッドは、指定されたオブジェクトについて、このFieldで表されるフィールドの値を返します。 値がプリミティブ型の場合、値はオブジェクトに自動的にラップされます。

宣言

以下は* java.lang.reflect.Field.get(Object obj)*メソッドの宣言です。

public Object get(Object obj)
   throws IllegalArgumentException, IllegalAccessException

パラメーター

*obj* -表現されたフィールドの値が抽出されるオブジェクト。

返品

オブジェクトobjで表されるフィールドの値。プリミティブ値は、返される前に適切なオブジェクトにラップされます。

例外

  • IllegalAccessException -このFieldオブジェクトがJava言語アクセス制御を実施しており、基礎となるフィールドにアクセスできない場合。
  • IllegalArgumentException -指定されたオブジェクトが、基礎となるフィールド(またはそのサブクラスまたは実装者)を宣言するクラスまたはインターフェースのインスタンスではない場合
  • NullPointerException -指定されたオブジェクトがnullで、フィールドがインスタンスフィールドである場合。
  • ExceptionInInitializerError -このメソッドによって引き起こされた初期化が失敗した場合。

次の例は、java.lang.reflect.Field.get(Object obj)メソッドの使用方法を示しています。

package com.finddevguides;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.reflect.Field;

public class FieldDemo {

   public static void main(String[] args) throws NoSuchFieldException,
      SecurityException, IllegalArgumentException, IllegalAccessException {

      SampleClass sampleObject = new SampleClass();
      sampleObject.setSampleField("data");

      Field field = SampleClass.class.getField("sampleField");
      System.out.println(field.get(sampleObject));
   }
}

@CustomAnnotation(name = "SampleClass",  value = "Sample Class Annotation")
class SampleClass {

   @CustomAnnotation(name="sampleClassField",  value = "Sample Field Annotation")
   public String sampleField;

   public String getSampleField() {
      return sampleField;
   }

   public void setSampleField(String sampleField) {
      this.sampleField = sampleField;
   }
}

@Retention(RetentionPolicy.RUNTIME)
@interface CustomAnnotation {
   public String name();
   public String value();
}

上記のプログラムをコンパイルして実行すると、次の結果が生成されます-

data