Java - Enum getDeclaringClass() method



Description

The Java Enum getDeclaringClass() method returns the Class object corresponding to this enum constant's enum type. Two enum constants e1 and e2 are of the same enum type if and only if e1.getDeclaringClass() == e2.getDeclaringClass().

Declaration

Following is the declaration for java.lang.Enum.getDeclaringClass() method

 public final Class<E> getDeclaringClass() 

Parameters

NA

Return Value

This method returns the Class object corresponding to this enum constant's enum type.

Exception

NA

Getting Declared Class of an enum Example

The following example shows the usage of getDeclaringClass() method for an enum using its reference.

 package com.tutorialspoint; // enum showing topics covered under Tutorials enum Tutorials { Java, HTML, Python; } public class EnumDemo { public static void main(String args[]) { Tutorials t1, t2, t3; t1 = Tutorials.Java; t2 = Tutorials.HTML; t3 = Tutorials.Python; // returns the Class object corresponding to an enum System.out.println(t2.getDeclaringClass()); } } 

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

 class com.tutorialspoint.Tutorials 

Getting Declared Class of an enum Example

The following example shows the usage of getDeclaringClass() method for an enum using its type directly.

 package com.tutorialspoint; // enum showing topics covered under Tutorials enum Tutorials { Java, HTML, Python; } public class EnumDemo { public static void main(String args[]) { Tutorials t1, t2, t3; t1 = Tutorials.Java; t2 = Tutorials.HTML; t3 = Tutorials.Python; // returns the Class object corresponding to an enum System.out.println(Tutorials.HTML.getDeclaringClass()); } } 

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

 class com.tutorialspoint.Tutorials 

Facing Exception while Getting Declared Class of an enum Example

The following example shows the usage of getDeclaringClass() method for an enum to check if enum are of same type. As we're comparing two enums of different types, program will give compiler error.

 package com.tutorialspoint; // enum showing topics covered under Tutorials enum Tutorials { Java, HTML, Python; } // a different enum with same values enum Tutorial { Java, HTML, Python; } public class EnumDemo { public static void main(String args[]) { if(Tutorials.HTML.getDeclaringClass() == Tutorials.Python.getDeclaringClass()) { System.out.println("Enums are of same type"); } if(Tutorial.HTML.getDeclaringClass() == Tutorials.Python.getDeclaringClass()) { System.out.println("Enums are of same type"); } } } 

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

 Exception in thread "main" java.lang.Error: Unresolved compilation problem:	Incompatible operand types Class<Tutorial> and Class<Tutorials>	at com.tutorialspoint.EnumDemo.main(EnumDemo.java:20) 
java_lang_enum.htm
Advertisements