web-dev-qa-db-fra.com

Java 8 interface fonctionnelle sans arguments et sans valeur de retour

Qu'est-ce que l'interface fonctionnelle Java 8 pour une méthode qui ne prend rien et ne renvoie rien?

C'est-à-dire l'équivalent de C # sans paramètre Action avec void type de retour?

91
Miguel Gamboa

Si je comprends bien, vous voulez une interface fonctionnelle avec une méthode void m(). Dans ce cas, vous pouvez simplement utiliser un Runnable .

83
assylias

Faites le vôtre

@FunctionalInterface
public interface Procedure {
    void run();

    default Procedure andThen(Procedure after){
        return () -> {
            this.run();
            after.run();
        };
    }

    default Procedure compose(Procedure before){
        return () -> {
            before.run();
            this.run();
        };
    }
}

et l'utiliser comme ça

public static void main(String[] args){
    Procedure procedure1 = () -> System.out.print("Hello");
    Procedure procedure2 = () -> System.out.print("World");

    procedure1.andThen(procedure2).run();
    System.out.println();
    procedure1.compose(procedure2).run();

}

et la sortie

HelloWorld
WorldHello
8
Charana