java.lang.reflect.Field.get() Method Example



Description

The java.lang.reflect.Field.get(Object obj) method returns the value of the field represented by this Field, on the specified object. The value is automatically wrapped in an object if it has a primitive type.

Declaration

Following is the declaration for java.lang.reflect.Field.get(Object obj) method.

public Object get(Object obj)
   throws IllegalArgumentException, IllegalAccessException

Parameters

obj − object from which the represented field's value is to be extracted.

Returns

the value of the represented field in object obj; primitive values are wrapped in an appropriate object before being returned.

Exceptions

  • IllegalAccessException − if this Field object is enforcing Java language access control and the underlying field is inaccessible.

  • IllegalArgumentException − if the specified object is not an instance of the class or interface declaring the underlying field (or a subclass or implementor thereof).

  • NullPointerException − if the specified object is null and the field is an instance field.

  • ExceptionInInitializerError − if the initialization provoked by this method fails.

Example

The following example shows the usage of java.lang.reflect.Field.get(Object obj) method.

package com.tutorialspoint;

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();
}

Let us compile and run the above program, this will produce the following result −

data
java_reflect_field.htm
Advertisements