Maison >Java >javaDidacticiel >Comment puis-je gérer les exceptions vérifiées dans les expressions Java 8 Lambda ?
Gestion des exceptions dans les fonctions Lambda Java 8
Lors de la création de références à des méthodes utilisant des expressions lambda, il est essentiel de prendre en compte la gestion des exceptions. Les types de référence de fonction par défaut ne prennent pas en charge les exceptions vérifiées, telles que celles qui étendent IOException.
Pour résoudre ce problème, il existe deux approches :
1. Définir une interface fonctionnelle personnalisée
Si le code est sous votre contrôle, vous pouvez créer une interface fonctionnelle personnalisée qui déclare explicitement l'exception vérifiée :
@FunctionalInterface public interface CheckedFunction<T, R> { R apply(T t) throws IOException; }
Ensuite, utilisez l'interface fonctionnelle personnalisée interface pour définir votre référence de fonction :
void foo(CheckedFunction<String, Integer> f) { ... }
2. Encapsuler la méthode vérifiée
Si vous n'avez pas de contrôle sur la méthode vérifiée, vous pouvez l'envelopper dans une méthode qui ne déclare pas d'exception vérifiée :
public Integer myWrappedMethod(String s) { try { return myMethod(s); } catch (IOException e) { throw new UncheckedIOException(e); } }
Avec le enveloppée, vous pouvez créer la référence de fonction comme suit :
Function<String, Integer> f = (String t) -> myWrappedMethod(t);
Vous pouvez également utiliser une expression lambda avec une gestion des exceptions block :
Function<String, Integer> f = (String t) -> { try { return myMethod(t); } catch (IOException e) { throw new UncheckedIOException(e); } };
En utilisant ces techniques, vous pouvez gérer avec élégance les exceptions vérifiées dans les fonctions lambda de Java 8, garantissant ainsi que votre code reste robuste et protégé contre les exceptions.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!