Close

Java Reflection - Field.isEnumConstant() Examples

Java Reflection Java Java API 


Class:

java.lang.reflect.Field

java.lang.Objectjava.lang.Objectjava.lang.reflect.AccessibleObjectjava.lang.reflect.AccessibleObjectjava.lang.reflect.AnnotatedElementAnnotatedElementjava.lang.reflect.Fieldjava.lang.reflect.Fieldjava.lang.reflect.MemberMemberLogicBig

Method:

public boolean isEnumConstant()

Returns true if this field represents an element of an enumerated type; returns false otherwise.


Examples


package com.logicbig.example.field;

import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;

public class IsEnumConstantExample {
private TimeUnit timeUnit;

public static void main(String... args) throws NoSuchFieldException {
Field field = IsEnumConstantExample.class.getDeclaredField("timeUnit");
boolean v = field.isEnumConstant();
System.out.println(v);
}
}

Output

false




Checking all fields in TimeUnit.class:

package com.logicbig.example.field;

import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;

public class IsEnumConstantExample2 {

public static void main(String... args) {
Field[] declaredFields = TimeUnit.class.getDeclaredFields();
Arrays.stream(declaredFields)
.forEach(f ->
System.out.printf("Field name: %-12s, isEnumConstant: %s%n",
f.getName(), f.isEnumConstant()));

}
}

Output

Field name: NANOSECONDS , isEnumConstant: true
Field name: MICROSECONDS, isEnumConstant: true
Field name: MILLISECONDS, isEnumConstant: true
Field name: SECONDS , isEnumConstant: true
Field name: MINUTES , isEnumConstant: true
Field name: HOURS , isEnumConstant: true
Field name: DAYS , isEnumConstant: true
Field name: NANO_SCALE , isEnumConstant: false
Field name: MICRO_SCALE , isEnumConstant: false
Field name: MILLI_SCALE , isEnumConstant: false
Field name: SECOND_SCALE, isEnumConstant: false
Field name: MINUTE_SCALE, isEnumConstant: false
Field name: HOUR_SCALE , isEnumConstant: false
Field name: DAY_SCALE , isEnumConstant: false
Field name: scale , isEnumConstant: false
Field name: maxNanos , isEnumConstant: false
Field name: maxMicros , isEnumConstant: false
Field name: maxMillis , isEnumConstant: false
Field name: maxSecs , isEnumConstant: false
Field name: microRatio , isEnumConstant: false
Field name: milliRatio , isEnumConstant: false
Field name: secRatio , isEnumConstant: false
Field name: $VALUES , isEnumConstant: false




package com.logicbig.example.field;

import java.lang.reflect.Field;
import java.util.Arrays;

public class IsEnumConstantExample3 {

public static void main(String... args) {
Field[] declaredFields = MyEnum.class.getDeclaredFields();
Arrays.stream(declaredFields)
.forEach(f ->
System.out.printf("Field name: %-12s, isEnumConstant: %s%n",
f.getName(), f.isEnumConstant()));
}

private static enum MyEnum {
A, B, C
}
}

Output

Field name: A           , isEnumConstant: true
Field name: B , isEnumConstant: true
Field name: C , isEnumConstant: true
Field name: $VALUES , isEnumConstant: false

Note that $VALUES field is related to values() method in an enum (check out this example as well).





See Also