Menu
Coddy logo textTech

Musterabgleich

Teil des Abschnitts Logik & Ablauf der Java-Journey von Coddy — Lektion 37 von 59.

Pattern Matching in Java ermöglicht es Ihnen zu prüfen, ob ein Objekt einen bestimmten Typ hat, und Komponenten daraus zu extrahieren. Es vereinfacht Typprüfungen und Casting-Operationen.

Schauen wir uns an, wie man Pattern Matching mit instanceof verwendet:

Object obj = "Hello";
if (obj instanceof String str) {
   // str wird automatisch in einen String umgewandelt
   System.out.println(str.toUpperCase());
}

Nach Ausführung des obigen Codes lautet die Ausgabe:

"HELLO"

Sie können Pattern-Matching-Prüfungen auch mit else if verketten:

Object value = 42;
String result;
if (value instanceof Integer i) {
    result = "Number: " + i;
} else if (value instanceof String s) {
    result = "Text: " + s;
} else {
    result = "Unknown";
}

Nach der Ausführung des obigen Codes enthält result:

“Number: 42”

challenge icon

Aufgabe

Einfach

Erstellen Sie eine Methode namens processValue, die ein Argument entgegennimmt:

  1. Ein Objekt (value), das von verschiedenen Typen sein kann

Die Methode sollte Pattern Matching mit instanceof verwenden, um den Wert zu verarbeiten und einen String basierend auf diesen Regeln zurückzugeben:

  • Wenn es ein Integer ist: geben Sie "Number: " gefolgt vom verdoppelten Wert zurück
  • Wenn es ein String ist: geben Sie "Text: " gefolgt vom Wert in Großbuchstaben zurück
  • Wenn es ein Boolean ist: geben Sie "Boolean: " gefolgt vom gegenteiligen Wert zurück (true wird zu false und umgekehrt)
  • Für jeden anderen Typ: geben Sie "Unknown" zurück

Probier es selbst

import java.util.Scanner;

public class Main {
    public static String processValue(Object value) {
        // TODO: Verwende Pattern Matching mit instanceof, um den Wert zu verarbeiten
        // Wenn es ein Integer ist: gib "Number: " + (value * 2) zurück
        // Wenn es ein String ist: gib "Text: " + value.toUpperCase() zurück
        // Wenn es ein Boolean ist: gib "Boolean: " + (!value) zurück
        // Für jeden anderen Typ: gib "Unknown" zurück
        
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String type = scanner.nextLine();
        String inputValue = scanner.nextLine();
        
        Object value = switch(type) {
            case "Integer" -> Integer.parseInt(inputValue);
            case "String" -> inputValue;
            case "Boolean" -> Boolean.parseBoolean(inputValue);
            default -> inputValue;
        };
        
        System.out.println(processValue(value));
    }
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf