Discover the Power of Java Enums: Learn How to Use ValueOf with These Real Code Examples

Table of content

  1. Introduction
  2. What are Java Enums?
  3. Why use Java Enums?
  4. How to Declare Java Enums?
  5. How to Use ValueOf with Java Enums?
  6. Real Code Examples for ValueOf in Java Enums
  7. Conclusion
  8. Further Resources


Enums are a powerful feature of the Java programming language that allow developers to define a set of predefined values for a variable. This can simplify code, improve readability, and reduce the likelihood of errors. One of the most useful methods for working with enums is the valueOf() method, which allows you to convert a string into an enum value.

In this article, we will explore the power of Java enums and discuss how you can use the valueOf() method in your own code. We will provide real code examples to help you understand the concepts and show you how to apply them in practice. Whether you are new to Java or an experienced developer, this article will show you how to take advantage of enums and improve the quality of your code. So let's get started!

What are Java Enums?

Java Enums are a special type of data type in Java that define a fixed set of constants. They allow you to define an enumerable type with a fixed number of values, and are often used to represent collections of related constants. Enums were introduced in Java 5 as a way to replace the use of integer constants, which can be difficult to read and maintain.

In Java, Enums are defined as a keyword followed by a list of comma-separated constants. Each constant can have an associated value, which can be any valid Java expression. Enums can also have constructors, methods, and fields like any other Java class.

One of the main advantages of Enums is that they provide type safety. This means that the compiler will enforce that any value assigned to an Enum variable is one of the valid constants defined in the Enum. This can help prevent runtime errors and improve the readability of your code.

Enums are commonly used in Java for things like representing the days of the week, the months of the year, or other sets of related constants. They can also be used to represent more complex concepts, such as states in a finite-state machine or the possible values of a parameter.

Overall, Java Enums are a powerful tool for defining collections of related constants in a type-safe and easily maintainable way. They are a powerful tool that every Java developer should be familiar with.

Why use Java Enums?

Java Enums are a powerful tool in object-oriented programming. They provide a way to define a fixed set of values that can be used throughout your program. Essentially, they are a way of creating a type that can only take on certain values. With Java Enums, you can improve the readability and maintainability of your code, as well as catch errors more quickly at compile-time.

Here are a few reasons why you might want to use Java Enums:

  • Type safety: Enums are strongly typed, which means that they provide type safety. This ensures that the programmer can only use the allowed values of the Enum when assigning values to the Enum variable.
  • Code readability: Enum values are self-explanatory and make the code more readable. Developers using your code will be able to easily understand the meaning behind the different types of Enum objects.
  • Available at compile time: Using Java Enums, you can catch errors at compile time by verifying that allowable values are being used. This saves the developer time during testing by avoiding run time errors.

Java Enums can be used to represent a set of related constants, such as the days of the week or months in a calendar year. They can also be used to represent different types of objects, such as the different types of fruits or animals. Once you define an Enum type, you can use it just like any other data type in Java.

How to Declare Java Enums?

In Java, enums are declared using the enum keyword, followed by the name of the enum type. The values of the enum are listed within curly braces, separated by commas. Here's an example:

enum DayOfWeek {

In this example, we've declared an enum type called DayOfWeek, with seven possible values representing each day of the week. It's worth noting that enum values are implicitly constant, so they can't be modified at runtime.

Enums can also hold additional data, such as integers or strings. Here's an example:

enum Size {
    SMALL(1), MEDIUM(2), LARGE(3), X_LARGE(4);
    private int value;
    private Size(int value) {
        this.value = value;
    public int getValue() {
        return value;

In this example, we've declared an enum type called Size, with four values representing clothing sizes. Each value has an associated integer value, set through a constructor. The getValue() method allows us to retrieve the integer value for a given enum value.

Overall, enums are a powerful feature in Java that allow us to define a fixed set of values with associated data. Enums are particularly useful in situations where we want to restrict the possible values for a variable or parameter, making code more robust and less prone to errors.

How to Use ValueOf with Java Enums?

Java Enums provide a convenient way of defining a set of related constant values. One of the important methods in Java Enums is the valueOf method, which is used to get an instance of the Enum class based on the given name. In this section, we explore how to use the valueOf method with Java Enums.

Syntax of valueOf method

The syntax of the valueOf method is as follows:

public static EnumType valueOf(String name)

where EnumType is the class or interface of the Enum, and name is the string containing the name of the constant instance to be returned. The valueOf method throws an IllegalArgumentException if the specified name is not found in the Enum.

Example usage

Consider the following example code:

public enum Color {

public class Example {
    public static void main(String[] args) {
        Color c1 = Color.valueOf("RED");

        Color c2 = Color.valueOf("BLACK");

In the above code, we define an Enum Color that contains three constant values – RED, GREEN, and BLUE. In the main method, we use the valueOf method to get an instance of Color for the given string RED. We then print the instance to the console, which will output RED.

Next, we use the valueOf method with an invalid string BLACK. Since BLACK is not a valid constant in the Color Enum, the valueOf method throws an IllegalArgumentException, which we catch and print to the console.


The valueOf method is a powerful feature of Java Enums that allows us to get an instance of an Enum class based on the given name. This method is useful in a variety of scenarios, such as converting strings to Enum instances or handling user input. By understanding how to use the valueOf method, we can leverage the full power of Java Enums to write cleaner, more efficient code.

Real Code Examples for ValueOf in Java Enums

To better understand how to use the valueOf method with Java enums, let's take a look at some real code examples:

Example 1: DayOfWeek Enum

public enum DayOfWeek {

In this example, we have an enum called DayOfWeek that contains the days of the week. To access a specific day, we can use the valueOf method:

DayOfWeek day = DayOfWeek.valueOf("MONDAY");
System.out.println(day); // Output: MONDAY

Example 2: Color Enum

public enum Color {
  RED("#FF0000"), GREEN("#00FF00"), BLUE("#0000FF");
  private final String hexCode;

  private Color(String hexCode) {
    this.hexCode = hexCode;

  public String getHexCode() {
    return hexCode;

In this example, we have an enum called Color that contains three color options with their respective hex codes. We can use the valueOf method to access a specific color:

Color color = Color.valueOf("RED");
System.out.println(color.getHexCode()); // Output: #FF0000

Example 3: Size Enum

public enum Size {
  SMALL(18), MEDIUM(21), LARGE(24), XLARGE(27);
  private final int inches;

  private Size(int inches) {
    this.inches = inches;

  public int getInches() {
    return inches;

In this example, we have an enum called Size that contains four size options with their respective inch measurements. We can use the valueOf method to access a specific size:

Size size = Size.valueOf("LARGE");
System.out.println(size.getInches()); // Output: 24

In each of these examples, we use the valueOf method to retrieve a specific enum constant by its name. By using enums, we can create a set of predefined options that are type-safe, which helps to prevent errors in our code. The valueOf method is a useful tool for working with enums in Java and can make our code more organized and efficient.


In , Java Enums are a powerful tool for developers, allowing them to create custom data types with set values. The valueOf() method, in particular, is a useful feature that allows developers to convert a string into an enum constant. This can be especially helpful when working with user input, as it enables developers to ensure that the input matches a defined set of values.

By using the code examples provided in this article, developers can learn how to implement enums and use the valueOf() method in their own projects. This knowledge can help them to enhance the functionality of their applications and make them more dynamic and user-friendly.

Overall, enums offer a more efficient and organized approach to working with constant values, simplifying the development process and improving the quality of the code. By mastering the use of enums, developers can become more skilled and versatile in their craft, and create more robust and reliable applications.

Further Resources

If you're interested in learning more about Java enums and their various use cases, there are a number of resources available that can help deepen your understanding of these powerful data types. Some additional resources you might want to check out include:

  • Java Generics and Collections: This book by Maurice Naftalin and Philip Wadler includes a detailed discussion of enums and their various features, as well as how they can be used in conjunction with other Java data types.

  • Effective Java: The second edition of this classic book by Joshua Bloch includes a thorough discussion of enums, including how to use the valueOf() method effectively.

  • Java Enum Tutorial: This tutorial from the Java Tutorials website provides a concise introduction to enums in Java, including how to create them and the various ways in which they can be used.

  • Java 8 Enums Tutorial: This tutorial from the Baeldung website provides a detailed overview of the new enum features introduced in Java 8, including how to use the new Stream API with enums.

By delving into these and other resources, you'll be able to gain a deeper understanding of the power and versatility of Java enums, and how they can be used to solve a wide range of programming challenges. Whether you're a seasoned Java developer or just starting out, these resources can help you take your skills to the next level and unlock the full potential of this powerful programming language.

Throughout my career, I have held positions ranging from Associate Software Engineer to Principal Engineer and have excelled in high-pressure environments. My passion and enthusiasm for my work drive me to get things done efficiently and effectively. I have a balanced mindset towards software development and testing, with a focus on design and underlying technologies. My experience in software development spans all aspects, including requirements gathering, design, coding, testing, and infrastructure. I specialize in developing distributed systems, web services, high-volume web applications, and ensuring scalability and availability using Amazon Web Services (EC2, ELBs, autoscaling, SimpleDB, SNS, SQS). Currently, I am focused on honing my skills in algorithms, data structures, and fast prototyping to develop and implement proof of concepts. Additionally, I possess good knowledge of analytics and have experience in implementing SiteCatalyst. As an open-source contributor, I am dedicated to contributing to the community and staying up-to-date with the latest technologies and industry trends.
Posts created 1855

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top