it-swarm.com.ru

Java 8 функциональный интерфейс без аргументов и без возвращаемого значения

Что такое функциональный интерфейс Java 8 для метода, который ничего не берет и ничего не возвращает?

Т.е., эквивалентно C # без параметров Action с void типом возврата?

91
Miguel Gamboa

Если я правильно понимаю, вы хотите функциональный интерфейс с методом void m(). В этом случае вы можете просто использовать Runnable .

82
assylias

Просто сделай свой собственный

@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();
        };
    }
}

и использовать это так

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();

}

и Результат

HelloWorld
WorldHello
8
Charana