Quelle est l'interface fonctionnelle Java 8 pour une méthode qui ne prend rien et ne renvoie rien?
Ie, l'équivalent du C # sans paramètre Action
avec le void
type de retour?
java
java-8
java-stream
Miguel Gamboa
la source
la source
Runnable
La spécification de l'interface indique qu'il s'agit de fournir un code exécutable à laThread
classe. Il ne me semble pas juste de l'utiliserRunnable
là où il n'est pas destiné à être exécuté par un thread; semble trompeur.Runnable
est défini comme aFunctionalInterface
car il répond à la spécification d'une interface fonctionnelle et peut être créé à l'aide de la syntaxe lambda. Pourquoi ne pas créer votre propre interface fonctionnelle? voir Runnable , voir FunctionalInterfaceRunnable
est annoté avec@FunctionalInterface
et (ii) même dans le contexte d'une expression lambda il sera exécuté sur un thread: le thread dans lequel le lambda est exécuté qui peut être le thread courant ...Runnable
était destinée à être utilisée à cette fin, pas seulement pour les contextes de thread.Faites le vôtre
et utilisez-le comme ça
et la sortie
la source
@FunctionalInterface autorise uniquement la méthode abstraite de la méthode Par conséquent, vous pouvez instancier cette interface avec l'expression lambda comme ci-dessous et vous pouvez accéder aux membres de l'interface
la source