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