Field isSynthetic() method in Java with Examples

Last Updated : 30 May, 2022

The isSynthetic() method of java.lang.reflect.Field is used to check whether Field Object is a synthetic field or not. If the field is a synthetic field then the function returns true otherwise it will return false. Synthetic Construct: Synthetic Construct is Class, Fields, and Methods that are created by the Java compiler for internal purposes. Syntax:

public boolean isSynthetic()

Parameters: This method accepts  nothing. Return: This method returns true if and only if this field is a synthetic field as defined by the Java Language Specification. Below programs illustrate isSynthetic() method: Program 1: 

Java
// Java program to illustrate isSynthetic() method

import java.lang.reflect.Field;
import java.time.Month;

public class GFG {

    public static void main(String[] args)
        throws Exception
    {

        // Get field object
        Field field
            = Numbers.class.getField("value");

        // check field is synthetic or not
        System.out.println(
            "The Field is isSynthetic: "
            + field.isSynthetic());
    }
}

// sample Numbers class
class Numbers {

    // static short value
    public static long value = 3114256;
}
Output:
The Field is isSynthetic: false

Program 2: 

Java
// Java program to illustrate isSynthetic() method

import java.lang.reflect.Field;
import java.time.DayOfWeek;

public class GFG {

    public static void main(String[] args)
        throws Exception
    {

        // Get field object of Month class
        Field[] fields
            = DayOfWeek.class
                  .getDeclaredFields();

        for (int i = 0; i < fields.length; i++) {

            // print name of Fields
            System.out.println(
                "The Field "
                + fields[i].toString()
                + "\n is isSynthetic:"
                + fields[i].isSynthetic());
        }
    }
}
Output:The Field public static final java.time.DayOfWeek java.time.DayOfWeek.MONDAY is isSynthetic:false The Field public static final java.time.DayOfWeek java.time.DayOfWeek.TUESDAY is isSynthetic:false The Field public static final java.time.DayOfWeek java.time.DayOfWeek.WEDNESDAY is isSynthetic:false The Field public static final java.time.DayOfWeek java.time.DayOfWeek.THURSDAY is isSynthetic:false The Field public static final java.time.DayOfWeek java.time.DayOfWeek.FRIDAY is isSynthetic:false The Field public static final java.time.DayOfWeek java.time.DayOfWeek.SATURDAY is isSynthetic:false The Field public static final java.time.DayOfWeek java.time.DayOfWeek.SUNDAY is isSynthetic:false The Field private static final java.time.DayOfWeek[] java.time.DayOfWeek.ENUMS is isSynthetic:false The Field private static final java.time.DayOfWeek[] java.time.DayOfWeek.$VALUES is isSynthetic:true

References: https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Field.html#isSynthetic--java

Comment