Гость
Форумы / Java [игнор отключен] [закрыт для гостей] / Преобразование if - return в Supplier with Function? / 2 сообщений из 2, страница 1 из 1
05.09.2019, 11:04
    #39857781
_webdev_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование if - return в Supplier with Function?
Господа, подскажите пож, как можно данный код заменить Supplier и функцией. Знаю что такое кажется возможно, только не могу найти подходящий синтаксис.

Сейчас есть несколько if, хочется заменить одним Supplier и передавать функцию как параметр.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 
if (isIn8Days(d, firstSearch, date))
        {
            return B;
        }
        if (isBetween8And14Days(d, firstSearch, date))
        {
            return C;
        }
.......



Что-то похожее нашёл..
Код: java
1.
2.
3.
4.
5.
public static <T, R> Supplier<R> bind(Function<T,R> fn, T val) {
    return () -> fn.apply(val);
}

create(bind(Foo::new, "hello"));



Спасибо, надеюсь мой вопрос понятен.
...
Рейтинг: 0 / 0
05.09.2019, 15:10
    #39857963
cossack5
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование if - return в Supplier with Function?
Что-то типа такого ?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
  static boolean isIn8Days(int d, String f, Date date) {
        return false;
    }

    static boolean isBetween8And14Days(int d, String f, Date date) {
        return false;
    }

    static class Pair<K, V> {
        public Pair(K first, V second) {
            this.first = first;
            this.second = second;
        }

        K first;
        V second;
    }

    static <V> V test(Pair<Supplier<Boolean>, V>... suppliers) {
        for (Pair<Supplier<Boolean>, V> supplier : suppliers) {
            if (supplier.first.get()) {
                return supplier.second;
            }
        }
        return null;
    }

    public static void main(String[] args) {
        int d = 1;
        String firstSearch = "a";
        Date date = new Date();
        int B = 20, C = 20;

        test(new Pair<>(() -> isIn8Days(d, firstSearch, date), B),
                new Pair<>(() -> isBetween8And14Days(d, firstSearch, date), C)
        );
        
    }
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Преобразование if - return в Supplier with Function? / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]