Heim > Java > javaLernprogramm > Wie kann ich geprüfte Ausnahmen in Java 8 Lambda-Ausdrücken behandeln?

Wie kann ich geprüfte Ausnahmen in Java 8 Lambda-Ausdrücken behandeln?

DDD
Freigeben: 2024-12-16 21:22:19
Original
385 Leute haben es durchsucht

How Can I Handle Checked Exceptions in Java 8 Lambda Expressions?

Behandeln von Ausnahmen in Java 8 Lambda-Funktionen

Beim Erstellen von Verweisen auf Methoden mithilfe von Lambda-Ausdrücken ist es wichtig, die Behandlung von Ausnahmen zu berücksichtigen. Die Standard-Funktionsreferenztypen unterstützen keine geprüften Ausnahmen, wie etwa solche, die IOException erweitern.

Um dieses Problem zu beheben, gibt es zwei Ansätze:

1. Definieren einer benutzerdefinierten Funktionsschnittstelle

Wenn der Code unter Ihrer Kontrolle steht, können Sie eine benutzerdefinierte Funktionsschnittstelle erstellen, die die aktivierte Ausnahme explizit deklariert:

@FunctionalInterface
public interface CheckedFunction<T, R> {
  R apply(T t) throws IOException;
}
Nach dem Login kopieren

Verwenden Sie dann die benutzerdefinierte Schnittstelle zum Definieren Ihrer Funktionsreferenz:

void foo(CheckedFunction<String, Integer> f) { ... }
Nach dem Login kopieren

2. Einschließen der geprüften Methode

Wenn Sie keine Kontrolle über die geprüfte Methode haben, können Sie sie in eine Methode einschließen, die keine geprüfte Ausnahme deklariert:

public Integer myWrappedMethod(String s) {
  try {
    return myMethod(s);
  } catch (IOException e) {
    throw new UncheckedIOException(e);
  }
}
Nach dem Login kopieren

Mit der Mit der Wrapped-Methode können Sie die Funktionsreferenz wie folgt erstellen:

Function<String, Integer> f = (String t) -> myWrappedMethod(t);
Nach dem Login kopieren

Alternativ können Sie einen Lambda-Ausdruck mit einer Ausnahmebehandlung verwenden block:

Function<String, Integer> f =
  (String t) -> {
    try {
      return myMethod(t);
    } catch (IOException e) {
      throw new UncheckedIOException(e);
    }
  };
Nach dem Login kopieren

Durch die Verwendung dieser Techniken können Sie geprüfte Ausnahmen in Java 8-Lambda-Funktionen ordnungsgemäß behandeln und so sicherstellen, dass Ihr Code robust und ausnahmesicher bleibt.

Das obige ist der detaillierte Inhalt vonWie kann ich geprüfte Ausnahmen in Java 8 Lambda-Ausdrücken behandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage