← Back to list

Say Goodbye to Switch! Use Enum and Lambda for Cleaner Code (Java Example)

🚀 Introduction

Sanjay Singh · 2025-02-09 07:00 · 0 claps · 1.4 min read paywalled
#java8 #java8-api #switch-case-in-java #java8-features #devlopment
Open on Medium ↗
Wiki topics: ☁️ · DevOps & Cloud

Say Goodbye to Switch! Use Enum and Lambda for Cleaner Code (Java Example)

🚀 Introduction

Tired of long switch statements? Let’s replace them with Enums + Lambda expressions for cleaner and scalable code! No theory—just code.

Say Goodbye to Switch! Use Enum and Lambda for Cleaner Code (Java Example)

Say Goodbye to Switch! Use Enum and Lambda for Cleaner Code (Java Example)

Story List Categories:

  • ***About Me & [List of Stories](https://medium.com/@saannjaay/lists)***
  • Java — All things Java-related.
  • Java Interview Playbook: Your Go-To Reading List — For interview preparation.
  • JAVA-8 — Dedicated to Java 8 topics.
  • Spring Boot & Spring — Focused on Spring and Spring Boot.
  • Microservices Topics List — Covering various microservices to

📝 The Problem: Long Switch-Case for Actions

public class PaymentService {
    public void processPayment(String paymentType) {
        switch (paymentType) {
            case "CREDIT":
                System.out.println("Processing Credit Card Payment...");
                break;
            case "DEBIT":
                System.out.println("Processing Debit Card Payment...");
                break;
            case "PAYPAL":
                System.out.println("Processing PayPal Payment...");
                break;
            default:
                System.out.println("Invalid Payment Type");
        }
    }
}

✔ Works, but not scalable. ❌ Adding a new payment type requires modifying the method.

Solution: Use Enum with Lambda

import java.util.function.Consumer;

enum PaymentType {
    CREDIT(payment -> System.out.println("Processing Credit Card Payment...")),
    DEBIT(payment -> System.out.println("Processing Debit Card Payment...")),
    PAYPAL(payment -> System.out.println("Processing PayPal Payment...")),
    UNKNOWN(payment -> System.out.println("Invalid Payment Type"));

    private final Consumer<String> action;

    PaymentType(Consumer<String> action) {
        this.action = action;
    }

    public void process() {
        action.accept(this.name());
    }

    public static PaymentType from(String type) {
        try {
            return PaymentType.valueOf(type);
        } catch (IllegalArgumentException e) {
            return UNKNOWN;
        }
    }
}

public class PaymentService {
    public void processPayment(String paymentType) {
        PaymentType.from(paymentType).process();
    }
}

More Maintainable — Just add a new enum constant. ✔ Encapsulation — Business logic stays inside the Enum. ✔ No More Long Switch-Case!

🔥 Use Enums + Lambdas for clean and maintainable code! 🚀

Story List Categories:

  • ***About Me & [List of Stories](https://medium.com/@saannjaay/lists)***
  • Java — All things Java-related.
  • Java Interview Playbook: Your Go-To Reading List — For interview preparation.
  • JAVA-8 — Dedicated to Java 8 topics.
  • Spring Boot & Spring — Focused on Spring and Spring Boot.
  • Microservices Topics List — Covering various microservices to

메타데이터
post_id
daf85f284fa3
slug
say-goodbye-to-switch-use-enum-and-lambda-for-cleaner-code-java-example-daf85f284fa3
url
https://medium.com/@sanjaysingh-dev/say-goodbye-to-switch-use-enum-and-lambda-for-cleaner-code-java-example-daf85f284fa3
canonical_url
https://medium.com/@sanjaysingh-dev/say-goodbye-to-switch-use-enum-and-lambda-for-cleaner-code-java-example-daf85f284fa3
author_url
https://medium.com/@sanjaysingh-dev
status
ok
fetched_at
2026-07-22 10:30:48