[JAVA] Interface fonctionnelle de base compréhensible en 3 minutes

introduction

Cet article est un article qui présente un exemple d'implémentation d'une interface fonctionnelle de base.

Normalement, je l'implémenterais dans une expression lambda ou l'utiliserais dans un Stream, mais par souci de simplicité, j'ose utiliser une méthode familière au lieu de l'utiliser.

J'aurais aimé avoir le sentiment que "les méthodes entrent dans des variables". (Strictement parlant, c'est une classe)

Il y a 43 interfaces fonctionnelles définies dans le package java.util.function, mais il y a quatre bases à garder à l'esprit. À part ces quatre, il est prudent de penser qu'il s'agit de types étendus.

Supplier Quelqu'un qui a quelque chose et me le donne. La méthode abstraite est get. Aucun argument, avec valeur de retour.

import java.time.LocalDateTime;
import java.util.function.Supplier;

public class Main {
    public static void main(String[] args) {
        Supplier<LocalDateTime> s = LocalDateTime::now;
        System.out.println(s.get()); // -> 2017-01-11T16:29:08.086
    }
}

Consumer Une personne qui traite ce que vous recevez. La méthode abstraite est accept. Avec des arguments, pas de valeur de retour.

import java.util.function.Consumer;

public class Main {
    public static void main(String[] args) {
        Consumer<String> c = System.out::println;
        c.accept("test"); // -> test
    }
}

Predicate Une personne qui rend la vérité de ce qu'il a reçu. La méthode abstraite est le test. Avec argument, avec valeur de retour (booléen uniquement).

import java.util.function.Predicate;

public class Main {
    public static void main(String[] args) {
        Predicate<String> p = ""::equals;
        System.out.println(p.test("foo")); // -> false
    }
}

Function Une soi-disant fonction qui traite et renvoie ce que vous recevez. La méthode abstraite est appliquée. Il y a un argument et une valeur de retour.

import java.util.function.Function;

public class Main {
    public static void main(String[] args) {
        Function<String, Integer> f = Integer::parseInt;
        System.out.println(f.apply("55") + 45); // -> 100
    }
}

Recommended Posts

Interface fonctionnelle de base compréhensible en 3 minutes
Introduction à Rakefile qui peut être effectuée en 10 minutes environ
Java (édition super débutante) compréhensible en 180 secondes
Orienté objet qui peut être compris par les fées
Ecrire une classe qui peut être ordonnée en Java Un petit mémo standard
Touches de raccourci pratiques pour Eclipse
Liste des appareils pouvant être prévisualisés avec Swift UI
Créez un fichier jar qui peut être exécuté sur Gradle
Mémo de référence / serveur LDAP en mémoire pouvant être intégré à Java
Résumé de l'ORM "uroboroSQL" qui peut être utilisé dans le Java d'entreprise
Imiter l'interface fonctionnelle de Java avec Kotlin
SwiftUI View qui peut être utilisé en combinaison avec d'autres frameworks
[Android Studio] Description qui peut être saisie en continu dans la base de données SQLite [Java]
Déconnectez un fichier CSV qui peut être lu par Excel à l'aide de la fonction logback
Extrait technologique pouvant être utilisé pour créer des sites EC dans la formation Java
Je ne savais pas que les classes internes pouvaient être définies dans l'interface [Java]
[Ruby] Clé de base pour être fort dans la refactorisation
Organiser les méthodes qui peuvent être utilisées avec StringUtils
L'histoire du port devenant inutilisable dans l'exemple de programme Spring Boot