Рубрики
Без рубрики

log4j2.xml Примеры потребителей Java 8

– Примеры потребителей Java 8

Автор оригинала: mkyong.

В Java 8/|Потребитель является функциональным интерфейсом; он принимает аргумент и ничего не возвращает.

@FunctionalInterface
public interface Consumer {
  void accept(T t);
}

1. Потребитель

package com.mkyong.java8;

import java.util.function.Consumer;

public class Java8Consumer1 {

    public static void main(String[] args) {

        Consumer print = x -> System.out.println(x);
        print.accept("java");   // java

    }

}

Выход

java

2. Функция Более Высокого Порядка

2.1 Этот пример принимает Потребитель в качестве аргумента имитирует forEach для печати каждого элемента из списка.

package com.mkyong.java8;

import java.util.Arrays;
import java.util.List;
import java.util.function.Consumer;

public class Java8Consumer2 {

    public static void main(String[] args) {

        List list = Arrays.asList(1, 2, 3, 4, 5);

        // implementation of the Consumer's accept methods.
        Consumer consumer = (Integer x) -> System.out.println(x);
        forEach(list, consumer);

        // or call this directly
        forEach(list, (Integer x) -> System.out.println(x));

    }

    static  void forEach(List list, Consumer consumer) {
        for (T t : list) {
            consumer.accept(t);
        }
    }

}

Выход

1
2
3
4
5
1
2
3
4
5

2.2 Тот же Для каждого способ принятия Потребитель в качестве аргумента; на этот раз мы выведем длину строки.

package com.mkyong.java8;

import java.util.Arrays;
import java.util.List;
import java.util.function.Consumer;

public class Java8Consumer3 {

    public static void main(String[] args) {

        List list = Arrays.asList("a", "ab", "abc");
        forEach(list, (String x) -> System.out.println(x.length()));

    }

    static  void forEach(List list, Consumer consumer) {
        for (T t : list) {
            consumer.accept(t);
        }
    }

}

Выход

1
2
3

Видите гибкость?

Рекомендации

Оригинал: “https://mkyong.com/java8/java-8-consumer-examples/”